我有一个动态生成的表单。它只有一个文本输入,其值是从数据库表(table_one)动态获取的ID。我的目标是将此ID提交到另一个表(table_two)。在我的页面上,我可以看到从table_one获取的这些ID说:1,2,3,4,5,但是当我提交任何这些ID时,请说“' 2'”,它只是最后一个ID&# 39; 5'将提交给table_two。如何修改我的代码,以便在我提交第2行时,ID' 2'将不会提交' 5'?以下是我的代码。
HTML
<form>
<input type="text" id="name" name="name" value="<?php echo $name_id;?>" >
<button type="submit" onclick="return chk()">Edit</button>
</form>
JAVASCRIPT
function chk(){
var name = document.getElementById('name').value;
var dataString = 'name='+ name;
$.ajax({
type:"post",
url:"test.php",
data:dataString,
cache:false,
success: function(html){
$('#msg').html(html);
}
});
return false;
}
PHP
$name = $_POST['name'];
echo "$name";
答案 0 :(得分:1)
您必须添加唯一标识符或使用DOM。您的案例的简单解决方案是:
HTML
<input type="text" id="name-<?php echo $name_id;?>">
<button type="submit" onclick="return chk(<?php echo $name_id;?>)">Edit</button>
的Javascript
function chk(name_id){
$.ajax({
type:"post",
url:"test.php",
data: {
id: name_id,
name: $('#name-'+name_id).val()
},
cache:false,
success: function(html){
$('#msg').html(html);
}
});
return false;
}
并传递要更改的行的ID。在服务器上,您处理来自$ _POST的两个值。希望这会有所帮助。
顺便说一下,在这个AJAX场景中你不需要表单元素。