Javascript 更新查询中的值作为0或空值输入到表中

Javascript 更新查询中的值作为0或空值输入到表中,javascript,php,sql-server,ajax,sql-update,Javascript,Php,Sql Server,Ajax,Sql Update,我有一个带有编辑按钮的HTML表格,可以单击该按钮,允许用户编辑行中的任何。一旦用户点击save,它就会使用Ajax将值发送到update.php,并将所有行信息放入更新查询中。但是,当更新查询运行时,除了4列(种类、容器、工厂、计量单位)之外的所有值都以0的形式输入数据库中的表中,或者只是空白。表中出现这种情况的列类型主要是float(8),有些是nvarchar(255) 看起来这些值正在传递到update.php很好,所以我猜我的更新查询可能有问题?对于如何解决更新查询问题以停止将值更新为

我有一个带有编辑按钮的HTML表格,可以单击该按钮,允许用户编辑行中的任何
。一旦用户点击save,它就会使用Ajax将值发送到
update.php
,并将所有行信息放入更新查询中。但是,当更新查询运行时,除了4列(种类、容器、工厂、计量单位)之外的所有值都以
0
的形式输入数据库中的表中,或者只是空白。表中出现这种情况的列类型主要是
float(8)
,有些是
nvarchar(255)

看起来这些值正在传递到
update.php
很好,所以我猜我的更新查询可能有问题?对于如何解决更新查询问题以停止将值更新为0/blank,并将其更新为输入的实际值,如有任何建议,我将不胜感激

Javascript和Ajax(“case”后面引号中的名称是对应行的类:

var isValid = true;
    var errors = '';
    var elements = tds;
    var dict = {};
    var selected;
    elements.each(function (index, element) {
      var type = $(this).attr('class');
      var value = (element.tagName == 'INPUT') ? $(this).val() : $(this).text();

      switch (type) {
        case "species":
          if (value) {
              dict["Species"] = value;
              break;
          }
          else {
            isValid = false;
            errors += "Please enter a valid Species\n";
          }
          break;
        case "container":
          if (value) {
              dict["Container"] = value;
              break;
          }
          else {
            isValid = false;
            errors += "Please enter Yes or No\n";
          }
          break;
        case "supp-name":
          if (value) {
              dict["Supplier Name"] = value;
            break;
          }
          else {
            isValid = false;
            errors += "Please enter a valid Supplier Name\n";
          }
          break;
        case "supp-sku":
          if (value) {
              dict["Supplier SKU"] = value;
              break;
          }
          else {
            isValid = false;
            errors += "Please enter a valid Supplier SKU\n";
          }
          break;
        case "newsku":
          if (value) {
              dict["Current SKU"] = value;
            break;
          }
          else {
            isValid = false;
            errors += "Please enter a valid Current SKU\n";
          }
          break;
        case "mill":
          if (value) {
              dict["Mill"] = value;
              break;
          }
          else {
            isValid = false;
            errors += "Please enter a valid Mill\n";
          }
          break;
        case "lead-time":
          if (value) {
              dict["Lead Time"] = value;
              break;
          }
          else {
            isValid = false;
            errors += "Please enter a valid Lead Time\n";
          }
          break;
        case "less-than-unit-cost":
          if (value) {
              dict["Less Than Unit Cost"] = value;
              break;
          }
          else {
            isValid = false;
            errors += "Please enter a valid Less Than Unit Cost\n";
          }
          break;
        case "unit-cost":
          if (value) {
              dict["Unit Cost"] = value;
              break;
          }
          else {
            isValid = false;
            errors += "Please enter a valid Unit Cost\n";
          }
          break;
        case "mill-direct-cost":
          if (value) {
              dict["Mill Direct Cost"] = value;
            break;
          }
          else {
            isValid = false;
            errors += "Please enter a valid Mill Direct Cost\n";
          }
          break;
        case "unit-quantity":
          if (value) {
              dict["Unit Quantity"] = value;
            break;
          }
          else {
            isValid = false;
            errors += "Please enter a valid Unit Quantity\n";
          }
          break;
        case "bundle-cost":
          if (value) {
              dict["Bundle Cost"] = value;
              break;
          }
          else {
            isValid = false;
            errors += "Please enter a valid number\n";
          }
          break;
        case "mixed-unit-price":
          if (value) {
              dict["6+ Mixed Unit Price"] = value;
            break;
          }
          else {
            isValid = false;
            errors += "Please enter a valid number\n";
          }
          break;
        case "uom":
          if (value) {
              dict["UOM"] = value;
              break;
          }
          else {
            isValid = false;
            errors += "Please enter a valid UOM\n";
          }
          break;
        case "mill-loc":
          if (value) {
              dict["Mill Location"] = value;
              break;
          }
          else {
            isValid = false;
            errors += "Please enter a valid Mill Location\n";
          }
          break;
        case "id":
              dict["ID"] = value;
              break;
        case "dropdown-select":
          var $row = $(this).parents('tr');
          selected = $row.find($(".selected")).val();
          console.log(selected);
          break;
      }
    })
    if (isValid) {
        console.log(dict);
        console.log(selected);
      $this.val('Edit');
      tds.prop('contenteditable', false);
      var request = $.ajax({
          type: "POST",
          url: "update.php",
          data: dict, selected,
          success: function(data){
              console.log(dict);
              console.log(selected);
            }
        });

        request.done(function (response, textStatus, jqXHR){
          if(JSON.parse(response) == true){
            console.log("row updated");
          } else {
            console.log("row failed to updated");
            console.log(response);
            console.log(textStatus);
            console.log(jqXHR);
          }
        });
    }
update.php
上引入值的变量:

  $species = $_POST['Species'];
  $container = $_POST['Container'];
  $supp_name = $_POST['Supplier Name'];
  $supp_sku = $_POST['Supplier SKU'];
  $current_sku = $_POST['Current SKU'];
  $mill = $_POST['Mill'];
  $lead_time = $_POST['Lead Time'];
  $less_than_unit_cost = $_POST['Less Than Unit Cost'];
  $unit_cost = $_POST['Unit Cost'];
  $mill_direct_cost = $_POST['Mill Direct Cost'];
  $unit_quantity = $_POST['Unit Quantity'];
  $bundle_cost = $_POST['Bundle Cost'];
  $mixed_unit_price = $_POST['6+ Mixed Unit Price'];
  $uom = $_POST['UOM'];
  $mill_loc = $_POST['Mill Location'];
  $id = $_POST['ID'];
  $selected = $_POST['selected'];
  $host="xxxxxxx"; 
  $dbName="xxxx"; 
  $dbUser="xxxxxxxxxx"; 
  $dbPass="xxxxxxxx";

  $pdo = new PDO("sqlsrv:Server=$host;Database=$dbName", $dbUser, $dbPass);
  $pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

  $sql = "UPDATE Example_Table SET [Species] = '$species', 
[Container] = '$container',
[Supplier Name] = '$supp_name',
[Supplier SKU] = '$supp_sku',
[Current SKU] = '$current_sku',
[Mill] = '$mill',
[Lead Time] = '$lead_time',
[Less Than Unit Cost] = '$less_than_unit_cost',
[Unit Cost] = '$unit_cost',
[Mill Direct Cost] = '$mill_direct_cost',
[Unit Quantity] = '$unit_quantity',
[Bundle Cost] = '$bundle_cost',
[6+ Mixed Unit Price] = '$mixed_unit_price',
[UOM] = '$uom',
[Mill Location] = '$mill_loc'

WHERE ID = $id";

  $stmt = $pdo->prepare($sql);  
  $result = $stmt->execute();
  echo json_encode($result);
Update.php
中更新查询:

  $species = $_POST['Species'];
  $container = $_POST['Container'];
  $supp_name = $_POST['Supplier Name'];
  $supp_sku = $_POST['Supplier SKU'];
  $current_sku = $_POST['Current SKU'];
  $mill = $_POST['Mill'];
  $lead_time = $_POST['Lead Time'];
  $less_than_unit_cost = $_POST['Less Than Unit Cost'];
  $unit_cost = $_POST['Unit Cost'];
  $mill_direct_cost = $_POST['Mill Direct Cost'];
  $unit_quantity = $_POST['Unit Quantity'];
  $bundle_cost = $_POST['Bundle Cost'];
  $mixed_unit_price = $_POST['6+ Mixed Unit Price'];
  $uom = $_POST['UOM'];
  $mill_loc = $_POST['Mill Location'];
  $id = $_POST['ID'];
  $selected = $_POST['selected'];
  $host="xxxxxxx"; 
  $dbName="xxxx"; 
  $dbUser="xxxxxxxxxx"; 
  $dbPass="xxxxxxxx";

  $pdo = new PDO("sqlsrv:Server=$host;Database=$dbName", $dbUser, $dbPass);
  $pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

  $sql = "UPDATE Example_Table SET [Species] = '$species', 
[Container] = '$container',
[Supplier Name] = '$supp_name',
[Supplier SKU] = '$supp_sku',
[Current SKU] = '$current_sku',
[Mill] = '$mill',
[Lead Time] = '$lead_time',
[Less Than Unit Cost] = '$less_than_unit_cost',
[Unit Cost] = '$unit_cost',
[Mill Direct Cost] = '$mill_direct_cost',
[Unit Quantity] = '$unit_quantity',
[Bundle Cost] = '$bundle_cost',
[6+ Mixed Unit Price] = '$mixed_unit_price',
[UOM] = '$uom',
[Mill Location] = '$mill_loc'

WHERE ID = $id";

  $stmt = $pdo->prepare($sql);  
  $result = $stmt->execute();
  echo json_encode($result);
这个

$species = $_POST['Species'];
$container = $_POST['Container'];
$supp_name = $_POST['Supplier Name'];
$supp_sku = $_POST['Supplier SKU'];
$current_sku = $_POST['Current SKU'];
$mill = $_POST['Mill'];
$lead_time = $_POST['Lead Time'];
$less_than_unit_cost = $_POST['Less Than Unit Cost'];
$unit_cost = $_POST['Unit Cost'];
$mill_direct_cost = $_POST['Mill Direct Cost'];
$unit_quantity = $_POST['Unit Quantity'];
$bundle_cost = $_POST['Bundle Cost'];
$mixed_unit_price = $_POST['6+ Mixed Unit Price'];
$uom = $_POST['UOM'];
$mill_loc = $_POST['Mill Location'];
$id = $_POST['ID'];
$selected = $_POST['selected'];

$host="xxxxxxx"; 
$dbName="xxxx"; 
$dbUser="xxxxxxxxxx"; 
$dbPass="xxxxxxxx";

$pdo = new PDO("sqlsrv:Server=$host;Database=$dbName", $dbUser, $dbPass);
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

$sql = "UPDATE Example_Table SET [Species] = '$species', 
[Container] = '$container',
[Supplier Name] = '$supp_name',
[Supplier SKU] = '$supp_sku',
[Current SKU] = '$current_sku',
[Mill] = '$mill',
[Lead Time] = '$lead_time',
[Less Than Unit Cost] = '$less_than_unit_cost',
[Unit Cost] = '$unit_cost',
[Mill Direct Cost] = '$mill_direct_cost',
[Unit Quantity] = '$unit_quantity',
[Bundle Cost] = '$bundle_cost',
[6+ Mixed Unit Price] = '$mixed_unit_price',
[UOM] = '$uom',
[Mill Location] = '$mill_loc'

WHERE ID = $id";

$stmt = $pdo->prepare($sql);  
$result = $stmt->execute();
echo json_encode($result);
<?php
    $species = $_POST['Species'];
    $container = $_POST['Container'];
    $supp_name = $_POST['Supplier_Name']; //make sure input names do not have spaces
    //ex: <input type="text" name="Supplier_Name" or name="Supplier-Name">, do this for every input that has space
    $supp_sku = $_POST['Supplier_SKU']; // or replace with `-`
    $current_sku = $_POST['Current_SKU'];// or replace with `-`
    $mill = $_POST['Mill'];
    $lead_time = $_POST['Lead_Time'];// or replace with `-`
    $less_than_unit_cost = $_POST['Less_Than_Unit_Cost'];// or replace with `-`
    $unit_cost = $_POST['Unit_Cost'];// or replace with `-`
    $mill_direct_cost = $_POST['Mill_Direct_Cost'];// or replace with `-`
    $unit_quantity = $_POST['Unit_Quantity'];// or replace with `-`
    $bundle_cost = $_POST['Bundle_Cost'];// or replace with `-`
    $mixed_unit_price = $_POST['6_Mixed_Unit_Price'];// This field remove the plus sign
    $uom = $_POST['UOM'];
    $mill_loc = $_POST['Mill Location'];// or replace with `-`
    $id = $_POST['ID'];
    $selected = $_POST['selected'];
?>

<?php
    $host="xxxxxxx";
    $dbName="xxxx";
    $dbUser="xxxxxxxxxx";
    $dbPass="xxxxxxxx";

    $pdo = new PDO("sqlsrv:Server=$host;Database=$dbName", $dbUser, $dbPass);
    $pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

    $sql = "UPDATE Example_Table SET [Species] = '$species', [Container] = '$container', 
    [Supplier_Name] = '$supp_name', [Supplier_SKU] = '$supp_sku',
    [Current_SKU] = '$current_sku', [Mill] = '$mill', [Lead_Time] = '$lead_time', 
    [Less_Than_Unit_Cost] = '$less_than_unit_cost', [Unit_Cost] = '$unit_cost', 
    [Mill Direct Cost] = '$mill_direct_cost', [Unit Quantity] = '$unit_quantity', 
    [Bundle Cost] = '$bundle_cost', [6+ Mixed Unit Price] = '$mixed_unit_price', 
    [UOM] = '$uom', [Mill_Location] = '$mill_loc' WHERE ID = '$id'";


    $stmt = $pdo->prepare($sql);
    $result = $stmt->execute();

    echo json_encode($result);
?>
应该是这样的

$species = $_POST['Species'];
$container = $_POST['Container'];
$supp_name = $_POST['Supplier Name'];
$supp_sku = $_POST['Supplier SKU'];
$current_sku = $_POST['Current SKU'];
$mill = $_POST['Mill'];
$lead_time = $_POST['Lead Time'];
$less_than_unit_cost = $_POST['Less Than Unit Cost'];
$unit_cost = $_POST['Unit Cost'];
$mill_direct_cost = $_POST['Mill Direct Cost'];
$unit_quantity = $_POST['Unit Quantity'];
$bundle_cost = $_POST['Bundle Cost'];
$mixed_unit_price = $_POST['6+ Mixed Unit Price'];
$uom = $_POST['UOM'];
$mill_loc = $_POST['Mill Location'];
$id = $_POST['ID'];
$selected = $_POST['selected'];

$host="xxxxxxx"; 
$dbName="xxxx"; 
$dbUser="xxxxxxxxxx"; 
$dbPass="xxxxxxxx";

$pdo = new PDO("sqlsrv:Server=$host;Database=$dbName", $dbUser, $dbPass);
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

$sql = "UPDATE Example_Table SET [Species] = '$species', 
[Container] = '$container',
[Supplier Name] = '$supp_name',
[Supplier SKU] = '$supp_sku',
[Current SKU] = '$current_sku',
[Mill] = '$mill',
[Lead Time] = '$lead_time',
[Less Than Unit Cost] = '$less_than_unit_cost',
[Unit Cost] = '$unit_cost',
[Mill Direct Cost] = '$mill_direct_cost',
[Unit Quantity] = '$unit_quantity',
[Bundle Cost] = '$bundle_cost',
[6+ Mixed Unit Price] = '$mixed_unit_price',
[UOM] = '$uom',
[Mill Location] = '$mill_loc'

WHERE ID = $id";

$stmt = $pdo->prepare($sql);  
$result = $stmt->execute();
echo json_encode($result);
<?php
    $species = $_POST['Species'];
    $container = $_POST['Container'];
    $supp_name = $_POST['Supplier_Name']; //make sure input names do not have spaces
    //ex: <input type="text" name="Supplier_Name" or name="Supplier-Name">, do this for every input that has space
    $supp_sku = $_POST['Supplier_SKU']; // or replace with `-`
    $current_sku = $_POST['Current_SKU'];// or replace with `-`
    $mill = $_POST['Mill'];
    $lead_time = $_POST['Lead_Time'];// or replace with `-`
    $less_than_unit_cost = $_POST['Less_Than_Unit_Cost'];// or replace with `-`
    $unit_cost = $_POST['Unit_Cost'];// or replace with `-`
    $mill_direct_cost = $_POST['Mill_Direct_Cost'];// or replace with `-`
    $unit_quantity = $_POST['Unit_Quantity'];// or replace with `-`
    $bundle_cost = $_POST['Bundle_Cost'];// or replace with `-`
    $mixed_unit_price = $_POST['6_Mixed_Unit_Price'];// This field remove the plus sign
    $uom = $_POST['UOM'];
    $mill_loc = $_POST['Mill Location'];// or replace with `-`
    $id = $_POST['ID'];
    $selected = $_POST['selected'];
?>

<?php
    $host="xxxxxxx";
    $dbName="xxxx";
    $dbUser="xxxxxxxxxx";
    $dbPass="xxxxxxxx";

    $pdo = new PDO("sqlsrv:Server=$host;Database=$dbName", $dbUser, $dbPass);
    $pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

    $sql = "UPDATE Example_Table SET [Species] = '$species', [Container] = '$container', 
    [Supplier_Name] = '$supp_name', [Supplier_SKU] = '$supp_sku',
    [Current_SKU] = '$current_sku', [Mill] = '$mill', [Lead_Time] = '$lead_time', 
    [Less_Than_Unit_Cost] = '$less_than_unit_cost', [Unit_Cost] = '$unit_cost', 
    [Mill Direct Cost] = '$mill_direct_cost', [Unit Quantity] = '$unit_quantity', 
    [Bundle Cost] = '$bundle_cost', [6+ Mixed Unit Price] = '$mixed_unit_price', 
    [UOM] = '$uom', [Mill_Location] = '$mill_loc' WHERE ID = '$id'";


    $stmt = $pdo->prepare($sql);
    $result = $stmt->execute();

    echo json_encode($result);
?>


您是否使用F12工具进行了调试以查看名称是否匹配?我一直在检查控制台,没有收到任何错误。在保存行后,我还检查了“网络”选项卡以查看my update.php,看起来所有表单数据都正确地传递到了页面。请确保发生这种情况的位置没有设置为整数,m您可能正在尝试在整数字段中插入varchar。您还应该知道,数据库中的行名之间不能有空格,或者用破折号
-
替换空格,或者用下划线
-
替换空格,尝试在post变量中避免空格。是的,您是对的……没有空格可用……我以为我在使用usi之前已经这样做了ng列有空格,但我想没有…谢谢你的帮助!