我正在创建更新表单。在此,当我点击更新按钮时,每次更新功能无法正常工作时,我都会得到相同的值。我已经尝试使用输入框的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>";
}
答案 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);
});
});
});