Javascript 在HTML表中添加行时,ID为NULL且不自动递增

Javascript 在HTML表中添加行时,ID为NULL且不自动递增,javascript,php,html,sql-server,Javascript,Php,Html,Sql Server,我有一个包含7列的HTML表,其中有一个insert按钮。无论何时按下“插入”按钮,都会出现一个对话框,您可以输入信息。在添加行时,我希望它自动将MR_ID列分配给MAX MR_ID为+1的任何值。例如,如果max MR_ID为300,我添加了一行,我希望添加行的MR_ID为301,基本上类似于自动递增。目前,每当我添加一行时,MR_ID在表中显示为0,在数据库中为NULL。MR_ID是其他表的查找,因此我不能将其设置为NULL或与另一行相同的数字。我该怎么做 我知道这是很多代码,但如果您有任何

我有一个包含7列的HTML表,其中有一个insert按钮。无论何时按下“插入”按钮,都会出现一个对话框,您可以输入信息。在添加行时,我希望它自动将MR_ID列分配给MAX MR_ID为+1的任何值。例如,如果max MR_ID为300,我添加了一行,我希望添加行的MR_ID为301,基本上类似于自动递增。目前,每当我添加一行时,MR_ID在表中显示为0,在数据库中为NULL。MR_ID是其他表的查找,因此我不能将其设置为NULL或与另一行相同的数字。我该怎么做

我知道这是很多代码,但如果您有任何问题,我会在这里帮助您使我的代码更清晰,如果可以的话

表格的HTML/PHP:

<?php
    /* Foreach loop that brings in information to populate table */
    foreach ($dbh->query($sql) as $rows){
    ?>
    <tr id="<?php echo intval ($rows['MR_ID'])?>">
        <td class="mr_id" id="<?php echo intval ($rows['MR_ID'])?>" contenteditable="false"><?php echo intval ($rows['MR_ID'])?></td>
        <td class="mr_name" id="mr_name-<?php echo intval ($rows['MR_ID'])?>" name="field" contenteditable="false"><?php echo $rows['MR_Name']?></td>
        <td class="buyer_id" id="buy_id<?php echo intval ($rows['MR_ID'])?>" contenteditable="false"><?php echo $rows['Buyer_ID']?></td>
        <td class="poc_n" id="poc_n-<?php echo intval ($rows['MR_ID'])?>" contenteditable="false"><?php echo $rows['MR_POC_N']?></td>     
        <td class="poc_e" id="poc_e-<?php echo intval ($rows['MR_ID'])?>" contenteditable="false"><?php echo $rows['MR_POC_E']?></td>
        <td class="poc_p" id="poc_p-<?php echo intval ($rows['MR_ID'])?>" contenteditable="false"><?php echo $rows['MR_POC_P']?></td>
        <td><input type="button" class="edit" name="edit" value="Edit">
    </tr>
 <?php
  }
 ?>
Ajax插入脚本:

<?php

  $MR_ID = $_POST['MR_ID'];
  $MR_Name = $_POST['MR_Name'];
  $Buyer_ID = $_POST['Buyer_ID'];
  $MR_POC_N = $_POST['MR_POC_N'];
  $MR_POC_E = $_POST['MR_POC_E'];
  $MR_POC_P = $_POST['MR_POC_P'];

  $host="xxxxxxxxxx"; 
  $dbName="xxxxxx"; 
  $dbUser="xxxxxxxxxxxxx"; 
  $dbPass="xxxxxxxxxx";

  $pdo = new PDO("sqlsrv:server=".$host.";Database=".$dbName, $dbUser, $dbPass);

  $sql = "INSERT INTO Stage_Rebate_Master (MR_ID, MR_Name, Buyer_ID, MR_POC_N, MR_POC_E, MR_POC_P) VALUES (?, ?, ?, ?, ?, ?)";
  $stmt = $pdo->prepare($sql);
  $result = $stmt->execute(array($MR_ID, $MR_Name, $Buyer_ID, $MR_POC_N, $MR_POC_E, $MR_POC_P));
  echo json_encode($result);

?>


SQL Server将其
auto_increment
列调用为
identity
auto_increment
是MYSQL的一个特性,它不是其他数据库的标准特性,尽管大多数其他数据库都有类似的特性。您需要在ManagementStudio中将该列设置为
identity
列(或其他工具或alter语句)。是的,谢谢。我把术语弄混了。我想我不能用MR_ID作为身份栏。表中创建了另一个名为“ID”的列,但它是一个标识列。虽然目前我的代码中没有使用它。
<?php

  $MR_ID = $_POST['MR_ID'];
  $MR_Name = $_POST['MR_Name'];
  $Buyer_ID = $_POST['Buyer_ID'];
  $MR_POC_N = $_POST['MR_POC_N'];
  $MR_POC_E = $_POST['MR_POC_E'];
  $MR_POC_P = $_POST['MR_POC_P'];

  $host="xxxxxxxxxx"; 
  $dbName="xxxxxx"; 
  $dbUser="xxxxxxxxxxxxx"; 
  $dbPass="xxxxxxxxxx";

  $pdo = new PDO("sqlsrv:server=".$host.";Database=".$dbName, $dbUser, $dbPass);

  $sql = "INSERT INTO Stage_Rebate_Master (MR_ID, MR_Name, Buyer_ID, MR_POC_N, MR_POC_E, MR_POC_P) VALUES (?, ?, ?, ?, ?, ?)";
  $stmt = $pdo->prepare($sql);
  $result = $stmt->execute(array($MR_ID, $MR_Name, $Buyer_ID, $MR_POC_N, $MR_POC_E, $MR_POC_P));
  echo json_encode($result);

?>