2017-08-09 59 views
-1

我正在創建一個更新表單。在這個當我點擊更新按鈕,我每次都得到相同的值,這就是爲什麼更新功能無法正常工作。我已經嘗試使用輸入框的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

標識__must__是一個HTML文檔中是唯一的 - 所以,只要你的循環經過多個迭代,你正在創建無效HTML。首先你需要解決這個問題。 – CBroe

回答

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);     
    });    
    }); 
}); 
+0

您節省我的時間...謝謝先生:)) – user3608987

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); 
}); 

拍攝評論,如果您有執行this.You應該總是寫唯一的ID在HTML元素的任何問題。 Javascript應該知道特定的鏈接已被點擊。

0

這是因爲您的id s是相同的,所以jQuery一旦匹配具有該ID的第一個元素就停止搜索。 爲了防止這種情況發生,使用.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);     
    });    
    }); 
}); 
+0

其工作...謝謝 – user3608987

相關問題