使用jQuery获取并发布带有动态id的选择下拉列表的值

时间:2013-07-08 14:45:16

标签: php jquery mysql

这是我第一次来这里。感谢您有机会成为这个社区的一员。

我有一个PHP代码,可以生成一个包含mySQL数据库数据的表。它将列出:

$output .='<tr id="'.$id.'">';
$output .='<td>'.$agency.'</td>';
$output .='<td>'.$contact.'</td>';
$output .='<td align="left">'.$telephone.'</td>';
$output .='<td align="left">'.$email.'</td>';
$output .='<form name="seleciona" id="seleciona">';
$output .='<td align="left"><select id="ativo" name="ativo">
                        <option value=""></option>
                        <option value="1">Active</option>
                        <option value="2">Pending</option>
                        <option value="3">Suspended</option>
                </select>
    <img class="apply" src="../images/apply.png" width="16" height="16"></td>';

$output .='</form>';
$output .='</tr>';  

然后我想通过jQuery在选择下拉框中发送所选选项 当用户单击图像apply.png时,到一个名为post_status.php的PHP文件。一切正常,唯一的问题是获取所选框的值并将其与id一起发送到PHP页面。

这是jQuery

<script>
$(document).ready(function(){   
  $('#table2 td img.apply').click(function(){
    if (confirm("Do you want to change this status?")) {
      var parent = $(this).closest('TR');
      var id = parent.attr('id');

      var activation ---> here should be the code to catch up the selected value

      $.post("post_activation.php", { id: id, activation: activation } );
      alert("Status has been updated!"+id+activation);
  }
  return false;
});
});
</script>

最后是文件post_activation.php

<?php
include "../connect_to_mysql.php";

if(isset($_POST['id'])){    
  $id=$_POST['id'];
  $activation=$_POST['activation'];

  $sql=mysql_query("UPDATE agencies 
                    SET 
                    active='$activation', 
                    last_update=CURDATE() 
                    WHERE 
                    id='$id'")or die(mysql_error()); 

}
?>

3 个答案:

答案 0 :(得分:1)

请尝试<select id="ativo'.$id.'" name="ativo">作为HTML部分。 并在jQuery部分var activation = $("#ativo"+parent.attr('id')).val();

你的答案是......

答案 1 :(得分:0)

这应该可以找到当前选择的值:

var element = document.getElementById("ativo");
var selected = element.options[element.selectedIndex].text;
activation = selected;

您还可以查看this demonstration

答案 2 :(得分:-1)

var activation = $("#ativo").html(); // gives you Active,Pending,Suspended

OR

var activation = $("#ativo").text(); // gives you Active,Pending,Suspended  

var activation = $("#ativo").val(); // gives you 1,2,3