jQuery / AJAX不更新带有Varchar ID的记录

时间:2018-12-08 17:23:22

标签: php jquery mysql ajax

当idInquiryItems为数字(1)时,此功能可以正常工作,但如果idInquiryItems包含字母(a3hcu45vn),则此功能将不起作用。当ID包含字母时,它甚至不会触发确认弹出窗口。

function deleteRecord(idInquiryItems) {
if(confirm("Are you sure you want to delete this line item?")) {
    $.ajax({
        url: "php/delete.php",
        type: "POST",
        data: "idInquiryItems=" + idInquiryItems,
        success: function(data){
          $("#table-row-"+idInquiryItems).remove();
        }
    });
}

}

idInquiryItems触发未捕获的ReferenceError:未定义a3hcu45vn     在HTMLAnchorElement.onclick(inquiry.php?idInquiry = 1:156)

HTML

<table id="inquiry-item-grid" class="w3-table w3-bordered w3-border w3-white">
    <col width="50">
    <col width="50">
    <col width="50">

    <thead>
      <tr>
        <th>Line</th>
        <th>Qty</th>
        <th>UOM</th>
        <th>Description</th>
        <th></th>
      </tr>
    </thead>
    <tbody id="table-body">

              <tr class="table-row" id="table-row-a3hcu45vn">
        <td contenteditable="true" id="Line" onBlur="saveToDatabase(this,'Line','a3hcu45vn')" onClick="editRow(this);">1</td>
        <td contenteditable="true" id="Quantity" onBlur="saveToDatabase(this,'Quantity','a3hcu45vn')" onClick="editRow(this);">1</td>
        <td contenteditable="true" id="UOM" onBlur="saveToDatabase(this,'UOM','a3hcu45vn')" onClick="editRow(this);">ea</td>
        <td contenteditable="true" id="Description" onBlur="saveToDatabase(this,'Description','a3hcu45vn')" onClick="editRow(this);">test</td>
        <td><a class="ajax-action-links w3-right" style="padding-right: 16px; cursor: pointer;" onclick="deleteRecord(a3hcu45vn);" title="Delete a3hcu45vn">X</a></td>
      </tr>
              <tr class="table-row" id="table-row-1">
        <td contenteditable="true" id="Line" onBlur="saveToDatabase(this,'Line','1')" onClick="editRow(this);">5</td>
        <td contenteditable="true" id="Quantity" onBlur="saveToDatabase(this,'Quantity','1')" onClick="editRow(this);">1</td>
        <td contenteditable="true" id="UOM" onBlur="saveToDatabase(this,'UOM','1')" onClick="editRow(this);">ea</td>
        <td contenteditable="true" id="Description" onBlur="saveToDatabase(this,'Description','1')" onClick="editRow(this);">readreadread</td>
        <td><a class="ajax-action-links w3-right" style="padding-right: 16px; cursor: pointer;" onclick="deleteRecord(1);" title="Delete 1">X</a></td>
      </tr>

    </tbody>
  </table>

PHP

    <?php
require_once("config.php");
$pdo_statement=$pdo_conn->prepare("UPDATE InquiryItems SET Deleted = 1 WHERE idInquiryItems = '" . $_POST['idInquiryItems'] . "'");
$pdo_statement->execute();
?>

2 个答案:

答案 0 :(得分:0)

尝试

processData:false, 数据:“ idInquiryItems =“ + idInquiryItems,

数据:{ idInquiryItems:idInquiryItems }

答案 1 :(得分:0)

将id传递给用引号引起来的函数可以解决此问题!

deleteRecord('a3hcu45vn')