语法错误:意外的数字/意外的令牌}

时间:2014-08-10 18:39:45

标签: javascript php

在处理动态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
}

我已经仔细检查过任何语法错误,并尝试了一些虚拟测试 -

  1. 创建一个随机函数来替换导致错误的编辑文件&#39;功能,工作正常。 - 意思是功能editparam周围的问题区域

  2. 使用临时变量首先存储$ row_users [&#39; phead&#39;],然后将其传递给函数,因为引号存在一些问题,但临时变量仍然给出了#34;意想不到的数字&#34;。

  3. 简单地回显$ row_users [&#39; phead&#39;]的值,这反映了适当的结果。 - 意味着发送的数据不是问题

  4. ".$row_users['Phead']."更改为'".$row_users['Phead']."'后,问题变为&#34;意外令牌}&#34;。

  5. 总结说语法有问题,但在所有这些尝试之后,它变得非常难以发现!对于寻找光明的新手来说,任何帮助都会非常感激!

0 个答案:

没有答案