main.php: -
<head>
<?php require_once '../scripts/login.php';?> //require action
<head>
<body>
<div id='line1'></div>
require(["dojo/request","dojo/domReady!"],
function(request)
{ready(function()
{request('processing.php').then( //request action
function(response){dom.byId(line1).innerHTML=response;},
function(error){alert(error);
});
......
</body>
processing.php: -
<?php
echo "By default, fetch mk7BC data<br/>";
echo
"<table border='1' cellspacing='0' cellpadding='2'>
<tr style='background-color:lightblue; font-weight:normal; font-size:small;'>
<th style='width:40px'>ID</th>
<th style='width:80px'>SN</th>
<th style='width:100px'>Tested</th>
<th style='width:40px'>Jig</th>
<th style='width:80px'>Card</th>
<th style='width:40px'>Batch</th>
<th style='width:40px'>COM</th>
<th style='width:40px'>3rdCOM</th>
<th style='width:40px'>IO34</th>
<th style='width:40px'>Comment</th>
</tr>";
try
(
$dbh-> query('use testdata1970_10');
$color='1';
foreach($dbh->query('call getallusers();') as $row)
{if($color==1)
{echo "<tr style='background-color:lightyellow; font-weight:lighter;
font-size:x-small;'>";
$color='2';
}
else
{echo"<tr style='background-color:lightgreen; font-weight:lighter;
font-size:x-small;'>";
$color='1';
}
echo
"<td>{$row['idtest']}</td>
<td>{$row['SN']}</td>
<td>{$row['time_tested']}</td>
<td>{$row['id_jig']}</td>
<td>{$row['mfg_code']}</td>
<td>{$row['batch_no']}</td>
<td>{$row['com_status']}</td>
<td>{$row['3rdcom_status']}</td>
<td>{$row['IO34_status']}</td>
<td>{$row['comment']}</td>
</tr>";
}
echo "</table>";
)
?>
的login.php: -
<?php
dbname=testdata1970_10;
$dsn = 'mysql:host=localhost; Port=3306';
$user = 'root';
$pswd = '';
$dbh = new PDO($dsn, $user, $pswd,
array(PDO::ATTR_PERSISTENT, TRUE));
$dbh->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
?>
请指教谢谢 克莱门特
答案 0 :(得分:0)
Stackoverflow特别适用于“我如何做X?”的问题。对于“这是我的所有代码,帮助我找到错误!”并不是很好。您需要努力自己找到问题,然后提出具体问题。
例如,你的Javascript有问题吗?或者你的PHP有问题吗?你的SQL可能有问题吗?
在这种情况下,您说打开processing.php会返回错误500.这意味着该错误可能与您的Javascript没有任何关系。相反,它可能是您的Web服务器在运行PHP脚本时遇到问题。
processing.php会出现什么问题?它有任何语法错误吗?当您在浏览器中打开processing.php时,您可能会收到一条带有一些线索的错误消息。或者您的文本编辑器可能突出显示错如果没有,请尝试运行
php -l processing.php
这会检查您的文件是否存在语法错误。你可能会得到类似的东西:
PHP Parse error: syntax error, unexpected '(', expecting '{' on line 18
您似乎需要在第18行用(
替换{
!
所以你再次修复php -l
,你在第47行看到同样的错误(几乎)。解决这个问题。重复。看起来你的try
没有相应的catch
!修复它。重复。
最后,也许你还有问题 - 但现在你已经努力找到问题,你可以提出一个更好的问题。
例如,processing.php中的$ dbh来自哪里?你是否将login.php包含在processing.php的顶部?
答案 1 :(得分:0)
感谢您的投入。现在一切都奏效了。 $ dbh来自login.php,我在main.php和processing.php中的require_once login.php。但是,我不明白为什么login.php需要在processing.php中再次被require_once,因为login.php中的脚本可用于main.php中的所有脚本。由于$ dbh在login.php中属于全局范围,而login.php是require_once,因此我需要main.php中的require_once login.php,而不是processing.php。 例如;
login.php - <?php $dbh="blah"?>
main.php - <?php require_once login.php?>
A.php - <?php $dbh... ?>
B.php - <?php $dbh... ?>
C.php - <?php $dbh... ?>
等等。我只想让login.php一劳永逸,不要在每个脚本中重复require_once。我读到“当包含一个文件时,它包含的代码继承了包含发生的行的变量范围。调用文件中该行可用的任何变量都将在被调用文件中可用,从那时起。 “在PHP.net中。如果我错了,请纠正。谢谢Clement