[英]jQuery post when click on radio button
我對單選按鈕中的jQuery post有問題。 當我使用jQuery AJAX發布單擊單選按鈕時,無法保存單選按鈕值
這是我的表格:
<?php
$jaw = mysql_query("SELECT * FROM jwb");
$j=mysql_fetch_array($jaw);
?>
<div id="id_jwb"><?php echo $j['id_jwb'];?></div><?php echo $j['jwb'];?><br>
<input type="radio" name="jwb1" value="A" id="jwb1" <?php if($j['jwb']=='A'){echo 'checked';}?>>A<br>
<input type="radio" name="jwb1" value="B" id="jwb1" <?php if($j['jwb']=='B'){echo 'checked';}?>>B<br>
<input type="radio" name="jwb1" value="C" id="jwb1" <?php if($j['jwb']=='C'){echo 'checked';}?>>C<br>
這是我的jQuery帖子:
$("#jwb1").click(function(){
var jawaban = $("input[name=jwb1]:checked").val();
var id_jawaban = $("#id_jwb").html();
$.post('update_jwb.php',{ jwb: jawaban, id_jwb: id_jawaban });
});
這是我插入db的php文件:
$con = mysql_connect($host, $username, $password);
mysql_select_db($database, $con);
$jwb = $_POST['jwb']; // $_POST['jwb'] dari jQuery-post
$id = $_POST['id_jwb'];
$sql = "UPDATE jwb SET jwb='{$jwb}' WHERE id_jwb='$id'";
$query = mysql_query($sql, $con);
if($query){
echo 'sukses';
}
else{
echo 'gagal';
}
問題出在您的html / jQuery上。 您正在嘗試使用單選按鈕的ID,但是所有三個單選按鈕都具有相同的ID值,因此瀏覽器不知道您要獲取哪個值。 您可以使用以下jQuery來解決此問題,該jQuery使用輸入名稱而不是id並僅獲取選中的單選按鈕的值。
$("input[name=jwb1]").click(function(){
var jawaban = $("input[name=jwb1]:checked").val();
var id_jawaban = $("input[name=jwb1]:checked").html();
$.post('update_jwb.php',{ jwb: jawaban, id_jwb: id_jawaban });
});
我也注意到這些輸入沒有任何內部HTML,因此...
$("input[name=jwb1]:checked").html()
...將不會返回任何內容,因此“ id_jwb”發布值將始終為空。 這意味着您幾乎可以擺脫這個職位價值。
如果要提交所選單選按鈕的值AND ID,則需要使每個單選按鈕具有唯一的ID。 然后使用以下jQuery:
$("input[name=jwb1]").click(function(){
var jawaban = $("input[name=jwb1]:checked").val();
var id_jawaban = $("input[name=jwb1]:checked").attr("id");
$.post('update_jwb.php',{ jwb: jawaban, id_jwb: id_jawaban });
});
每個id值在文檔中只能使用一次。 如果為多個元素分配了相同的ID,則使用該ID的查詢將僅選擇DOM中的第一個匹配元素。 但是,不應依賴這種行為。 包含多個使用相同ID的元素的文檔無效。
因此,我建議您使用帶有輸入標記的類,並使用類選擇器來附加click事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.