使用jQuery click函数从PHP

时间:2017-09-21 22:41:40

标签: javascript php jquery mysqli

我有一个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的值,无论我是否点击其他生成字段的按钮。

1 个答案:

答案 0 :(得分:0)

而不是

$('.status').on('click', '#change_status', function(){});

使用

$(document).on('click', '#change_status', function(){});

如果表本身不是动态的,则将此事件侦听器添加到父表。 如果您创建了多个选择,则生成的选择ID必须是唯一的。