簡體   English   中英

動態生成的表單僅提交mysql表的最后一行ID

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM