jQuery Ajax仅在while循环中产生第一个结果

时间:2018-08-12 12:09:10

标签: php jquery ajax

循环工作正常,它显示了应该执行的操作,但是有一个mysql更新按钮,该按钮仅更新显示的第一行值:

$(document).ready(function() {
  $("#update").click(function() {

    var fname = $("#fname").val();
    var lname = $("#lname").val();
    var recordId = $("#recordId").val();


    $.ajax({
      url: 'update.php',
      method: 'POST',
      async: true,

      data: {
        fname: fname,
        lname: lname,
        recordId: recordId
      },
      success: function(response) {
        alert(response);

      }

    });
  });
});
<?php
        $conn = new mysqli('localhost', 'root', '123456', 'lc');
        $sql = "SELECT * FROM lc where customer='souhail'";
        $result = $conn->query($sql);
       // while ( $row=mysqli_fetch_assoc($result)) {
            while($row = $result->fetch_array()) {
           echo  'LC ID :<input type="text" id="fname" value="'.$row['element_6'].'"><br>';         
           echo  'Status :<input type="text" id="lname" value="'.$row['element_101'].'"><br>';
            $recordId = $row['lc_id'];

           echo  '<input id="recordId" name="recordId" value="' . $recordId . '" >';

           ?>
  <button type="button" style="background-color:<?php
        if($row['element_101'] == '1'){
            echo '#0000FFF';

}elseif ($row['element_101'] == '2'){
            echo '#ffff00';

}elseif ($row['element_101'] == '3'){
            echo '#00FF00';

}elseif ($row['element_101'] == '4'){
            echo '#ffffff';

    }
        //echo $row['element_101'];
        ?>;color:#000000" id="update">Go Forward ></button>

  <br><br>
  <?php

        } ?>

1 个答案:

答案 0 :(得分:0)

您必须具有唯一的ID,但必须将每个集合包装在容器中并访问相关标签:

$(".update").on("click", function() {
  var $container = $(this).closest(".container");
  var fname = $container.find(".fname").val();
  var lname = $container.find(".lname").val();
  var recordId = $container.find(".recordId").val();

  $.ajax({
    url: 'update.php',
    method: 'POST',
    data: {
      fname: fname,
      lname: lname,
      recordId: recordId
    },
    success: function(response) {
      alert(response);
    },
    error: function(xhr, textStatus, error) {
      alert(xhr.statusText);
      console.log(textStatus);
      console.log(error);
    }
  });
});

Php

while($row = $result->fetch_array()) { 
  echo '<div class="container">
  echo 'LC ID  :<input type="text" class="fname" value="'.$row['element_6'].'"><br>'; 
  echo 'Status :<input type="text" class="lname" value="'.$row['element_101'].'"><br>'; $recordId = $row['lc_id']; 
  echo '<input class="recordId" name="recordId" value="' . $recordId . '">'; 
  echo '<button type="button" clsss="update">Go Forward ></button>';
  echo '/div>';
} ?>