得到输入框的所有值都是相同的

时间:2017-08-09 10:57:28

标签: javascript php jquery ajax

我正在创建更新表单。在此,当我点击更新按钮时,每次更新功能无法正常工作时,我都会得到相同的值。我已经尝试使用输入框的ID属性获取值但不起作用。我是这个领域的新手,这个任务需要很多时间。提前谢谢。

$(document).ready(function() {               
  $(".update").click(function() { 
    var id = $(this).data('id');
    var uname = $(".name1").val();
    var email = $(".email1").val();                    

    $.post("operation.php", {
      ID: id,
      operation: 'update',
      name: 'uname',
      email: 'uemail'
    }, function(data) {
      $("#result").html(data);                   
    });               
  });
});
for($i = 0; $i < $num_of_records; $i++)
{
  echo  "<tr><td>";           
  echo "<input type='text' value=".mysql_result($all_records, $i,"name")." class='name1' id='name' placeholder='Name'><input type='text' value=".mysql_result($all_records, $i,"email")." class='email1' id='email' placeholder='Email'><input type='submit' data-id=".mysql_result($all_records, $i,"id")." class='delete' name='delete' id='delete' value='Delete'><input  type='submit' data-id=".mysql_result($all_records, $i,"id")." class='update' name='update' id='update' value='Update'>";echo "</td></tr>";            
}

3 个答案:

答案 0 :(得分:0)

Javascript需要从与所单击的按钮相同的行中选择输入。

$(document).ready(function() {               
  $(".update").click(function() { 
    var row = $(this).closest("tr");
    var id = $(this).data('id');
    var uname = row.find(".name1").val();
    var email = row.find(".email1").val();                    

    $.post("operation.php", {
      ID: id,
      operation: 'update',
      name: 'uname',
      email: 'uemail'
    }, function(data) {
      $("#result").html(data);                   
    });               
  });
});

答案 1 :(得分:0)

更好的解决方案是这样的, 我给你一个小例子,因为你的代码有点整洁。

<?php
foreach($answers as $a)
{
?>
<a href="javascript:void(0)" data-answerid="<?php echo $a->id;?>" class="upvote_link" />Edit</a>
<?php
}
?>

jquery Onclick获取点击值

$('.upvote_link').click(function(){
var unique_id = $(this).data('answerid');
console.log(unique_id);
});

如果您在执行此操作时遇到任何问题,请发表评论。您应该始终在html元素中编写唯一ID。 Javascript应该知道点击了特定的链接。

答案 2 :(得分:0)

那是因为你的id是相同的,所以一旦jQuery与具有该ID的第一个元素匹配,jQuery就会停止搜索。 要防止这种情况发生,请使用.siblings()函数,如下所示:

$(document).ready(function() {               
  $(".update").click(function() { 
    var id = $(this).data('id');
    var uname = $(this).siblings(".name1").val();
    var email = $(this).siblings(".email1").val();                    

    $.post("operation.php", {
      ID: id,
      operation: 'update',
      name: 'uname',
      email: 'uemail'
    }, function(data) {
      $("#result").html(data);                   
    });               
  });
});