[英]Dynamically generated form submits only the last row ID of the mysql table
我有一個動態生成的表單,它只有一個文本輸入,其值是從數據庫表(table_one)動態獲取的ID。 我的目的是將此ID提交到另一個表(table_two)。 在我的頁面上,我可以看到從table_one獲取的ID:1、2、3、4、5,但是當我提交這些ID中的任何一個時,如果說“ 2”,則只會提交最后一個ID“ 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";
您必須添加唯一標識符或使用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方案中,您不需要表單元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.