ContentEditable的jQuery / Ajax POST不起作用

时间:2018-04-04 16:49:22

标签: javascript php jquery html ajax

我讨厌JavaScript / jQuery ....而且,大多数时候它都讨厌我。就在我认为我们开始建立融洽关系时,我陷入了一个无法找到出路的洞。

我试图将ContentEditable跨越POST更改到MySQL onBlur。

这是我的HTML / PHP:

<h4><strong>Number of Employees: </strong><span contenteditable="true" onBlur="saveToDatabase(this,'NumberOfEmployees','<?php echo $row["mysqlid"]; ?>')"><?php echo number_format($row['numberofemployees']); ?></span></h4>

这是我的jQuery:

function saveToDatabase(editableObj,column,id) {
            var dataString = 'column='+column+'&editval='+editableObj.innerHTML+'&id='+id;
            $.ajax({
                url: "_updatelead.php",
                type: "POST",
                data: { dataString },
                } 
            }
           });

我无法找到我的错误,但我所做的每一次尝试都会抛出同样的错误:

  

未捕获的ReferenceError:未定义saveToDatabase       在HTMLSpanElement.onblur(viewleaddetail.php?id = 5658:225)

我有什么想法可以解决这个问题?这似乎是一个简单的答案,但我无法做到。谢谢!

1 个答案:

答案 0 :(得分:0)

如果您使用jQuery,为什么不尝试这样:

<强> HTML

<h4><strong>Number of Employees: </strong>
  <span contenteditable="true" class="emp_item">
    <input type="hidden" value="NumberOfEmployees" name="column">
    <input type="hidden" value="<?php echo number_format($row['numberofemployees']); ?>" name="editval">
    <input type="hidden" value="<?php echo $row['mysqlid']; ?>" name="id">    
    <?php echo number_format($row['numberofemployees']); ?>
  </span> 
</h4>

<强>的javascript

$(document).on('blur', ".emp_item", function () { 

    var dataString =  $(this).find(":input").serialize();
            $.ajax({
                url: "_updatelead.php",
                type: "POST",
                data: { dataString }
            });

});