我有一个PHP,可以为表的每个字段生成一个选择框。字段名称为payment_status。 PHP将从表中提取字段的值并将其归因于此select的初始值,然后在select,paid和not paid中给出两个静态值,因此用户可以随时更改付款状态,然后按下一个名为change_status的生成按钮jquery函数将获得payment_status选择值和隐藏输入code_trip并将它们发送到PHP文件以更新表中的字段。请参阅下面的PHP生成HTML选择输入:
$output.='<tr>';
$output.='<input type="hidden" name="code_trip" id="code_trip" value="'.$code_trip.'">';
$output.='<td><b><a href="open_book.php?code_trip='.$code_trip.'">'.$code_trip.'</a></b></td>';
$output.='<td>'.$lastname.', '.$firstname.'</td>';
$output.='<td>('.$qty_traveling.') passenger(s)</td>';
$output.='<td class="status">Status: <b><select name="payment_status" id="payment_status">
<option value="'.$payment_status.'" selected="selected">'.$payment_status.'</option>
<option value="paid">paid</option>
<option value="not paid">not paid</option>
</select>
</b><input type="button" name="change_status" id="change_status" value="Save"></td>';
$output.='</tr'>;
现在我有jQuery函数,顺便说一下,它应该是值得的
$(document).ready(function(){
$('.status').on('click', '#change_status', function(){
var code_trip = $("#code_trip").val();
var new_pay_status = $("#payment_status").val();
alert(new_pay_status+" selected for trip: "+code_trip);
$.ajax({
type: "POST",
url: "save_payment_status.php",
data: { search_id1: code_trip, search_id2: new_pay_status },
cache: false,
success: function(html){
alert("Payment status has been changed to "+html);
}
});
});
});
当我点击按钮change_status时,jquery只获取第一个动态选择字段的值,payment_status以及第一个动态code_trip的值,无论我是否点击其他生成字段的按钮。
答案 0 :(得分:0)
而不是
$('.status').on('click', '#change_status', function(){});
使用
$(document).on('click', '#change_status', function(){});
如果表本身不是动态的,则将此事件侦听器添加到父表。 如果您创建了多个选择,则生成的选择ID必须是唯一的。