JQuery / AJAX не обновляет запись с Varchar ID - PullRequest
0 голосов
/ 08 декабря 2018

Эта функция отлично работает, когда idInquiryItems является числом (1), но не работает, когда idInquiryItems включает буквы (a3hcu45vn).Когда идентификатор содержит буквы, он даже не вызывает всплывающее окно подтверждения.

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 запускает Uncaught ReferenceError: a3hcu45vn не определено в HTMLAnchorElement.onclick (query.php? IdInquiry= 1: 156

1007 * 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 голосов
/ 08 декабря 2018

Передача идентификатора в функцию, заключенную в кавычки, исправила проблему!

deleteRecord('a3hcu45vn')
0 голосов
/ 08 декабря 2018

Попробуйте

processData: false, данные: "idInquiryItems =" + idInquiryItems,

или

data: {idInquiryItems: idInquiryItems}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...