在处理动态PHP表单时,允许用户通过AJAX调用逐行查看和编辑他们的数据,我会遇到"意外号码" Chrome控制台上的错误,以及进行小的更改(提及前面提到)后,它会更改为"意外令牌}"。我感到很困惑,因为我为不同的表格编写了完全相同的代码,并且工作得很好。
PHP代码段 -
echo "<table id='param-table'><tr ><td >Package Heading</td><td >Package Body</td><td >Special Text</td><td >Edit Package</td><tr>";
while ($row_users = mysqli_fetch_array($results)) {
echo "<form onSubmit='return false;' method='POST'><tr ><td >".$row_users['Phead']."</td><td>"."<input name='pbody' type='text' maxlength='50' value='".$row_users['Pbody']."'>"."</td><td>"."<input name='ptext' type='text' maxlength='20' value='".$row_users['Ptext']."'>"."</td><td>"."<button onclick='editParam(".$row_users['Phead']." , this)'>Edit Param</button>"."</td></form></tr>"; //".$row_users['Phead'].", this
}
echo "</table>";
每当我点击&#34;编辑参数&#34;时出现错误,看起来像这样 -
function editParam(phead, button) {
var tr, pbody, ptext;
// Find the row containing these inputs
tr = button.parentNode;
while (tr && tr.nodeName.toUpperCase() !== "TR" && tr.nodeName.toUpperCase() !== "BODY") {
tr = tr.parentNode;
}
if (!tr || tr.nodeName.toUpperCase() !== "TR") {
return; // Something went wrong
}
pbody = tr.querySelector("input[name=pbody]").value;
ptext = tr.querySelector("input[name=ptext]").value;
alert(phead+pbody+ptext); // testing
}
我已经仔细检查过任何语法错误,并尝试了一些虚拟测试 -
创建一个随机函数来替换导致错误的编辑文件&#39;功能,工作正常。 - 意思是功能editparam周围的问题区域
使用临时变量首先存储$ row_users [&#39; phead&#39;],然后将其传递给函数,因为引号存在一些问题,但临时变量仍然给出了#34;意想不到的数字&#34;。
简单地回显$ row_users [&#39; phead&#39;]的值,这反映了适当的结果。 - 意味着发送的数据不是问题
将".$row_users['Phead']."
更改为'".$row_users['Phead']."'
后,问题变为&#34;意外令牌}&#34;。
总结说语法有问题,但在所有这些尝试之后,它变得非常难以发现!对于寻找光明的新手来说,任何帮助都会非常感激!