2017-05-21 55 views
1

那么,我有一个表生成器,与MySQL数据库。有语法错误,但不知道在哪里

首先,代码:

PHP

while($result = mysqli_fetch_assoc($SQL)){ 
      $tbl->addCell("<p onBlur = 'editTable(" . $result['id_user'] . ", this, 'Name')' contentEditable = 'true'>" . $result['Name'] . "</p>"); 
      $tbl->addCell("<p onBlur = 'editTable(" . $result['id_user'] . ", this, 'Username')' contentEditable = 'true'>" . $result['Username'] . "</p>"); 
      $tbl->addCell("<p onBlur = 'editTable(" . $result['id_user'] . ", this, 'Email')' contentEditable = 'true'>" . $result['Email'] . "</p>"); 
      $tbl->addCell("<p onBlur = 'editTable(" . $result['id_user'] . ", this, 'Grade')' contentEditable = 'true'>" . $result['Grade'] . "</p>"); 
      $tbl->addCell("<input type = 'button' class = 'Edit-TBB' value = 'Edit'> 
      <input type = 'button' class = 'Delete-TBB' value = 'Delete'>"); 
      $tbl->addRow(); 
     } 

AJAX

function editTable(id, new_text, column) { 
      $.ajax({ 
       url: "../PHP/Configuracion/edit_grade.php", 
       type: "POST", 
       data: 'id='+id+'&text='+new_text.innerText, 
       success: function(data){ 
        alert(column); 
       } 
      }); 
     } 

这里的问题是:

我有这个'editTable(" . $result['id_user'] . ", this, 'Name')'

​​

如果我在Chrome中更改代码像this ......它的工作原理,但我不知道我需要在代码编辑器来改变。

我需要改变什么?

谢谢!

+0

尝试在HTML中使用双引号的onblur价值,像你这样,通过与他们逃脱“\”。 – georgiaboy82

回答

0

由于您使用单引号将js字符串表示为参数,因此您必须使用双引号表示onBlur值。要做到这一点,你需要在你的php中使用双引号。因此,改变addCell电话的样子:

addCell("<p onBlur=\"editTable(" . $result['id_user'] . ", this, 'Name')\" contentEditable = 'true'>"); 
+1

感谢所有兄弟! –