【问题标题】:Jquery append option in select tag选择标签中的Jquery附加选项
【发布时间】:2013-05-22 06:10:05
【问题描述】:

在这里,我尽我所能,但没有得到结果。请任何人帮助我。 我无法使用这些代码得到正确的结果。可能是我遗漏的东西。

$get_medical_aod_name = $_POST['name'];
$select_query = mysql_query("SELECT id, name FROM insurance_companies WHERE cat=$get_medical_aod_name");
while ($row = mysql_fetch_array($select_query)) {
  $result[] = array(
    'id' => $row['id'],
    'name' => $row['name']
  );
}
header('Content-Type: application/json', true);
echo json_encode($result);

在我的 script.js 中

$('#medical_aid_name').change(function(){
       //alert("working");
       var name = $(this).val();
       $.post('ins_bene.php',
    {'name' : name },
    function(data){
        var select = $('#benefit').empty();
        $.each(data.values, function(i,data) {
            select.append( '<option value="'
                                 + data.id
                                 + '">'
                                 + data.name
                                 + '</option>' ); 
        });
    }, "json");
   }); 

我感觉一切都很好,但我没有得到任何输出:(

【问题讨论】:

  • “无输出”是什么意思? .empty() 语句是否清除了 select 元素?
  • 是的,选择元素被清除。
  • 不,我没有得到结果。
  • 先打印姓名,确保姓名不是空字符串,然后在编辑器中尝试使用姓名查询。
  • 看看我的答案应该有效

标签: php jquery sql ajax


【解决方案1】:

您需要引用查询:

$select_query = mysql_query("SELECT id, name FROM insurance_companies WHERE cat=$get_medical_aod_name");

$select_query = mysql_query('SELECT id, name FROM insurance_companies WHERE cat="' . mysql_real_escape_string($get_medical_aod_name) .'"');

请不要使用 mysql_ 函数。转到 PDO!

【讨论】:

  • 引用查询后,选择元素没有被清除并且选择为空。
【解决方案2】:

而不是下面的代码:

 var select = $('#benefit').empty();
        $.each(data.values, function(i,data) {
            select.append( '<option value="'
                                 + data.id
                                 + '">'
                                 + data.name
                                 + '</option>' ); 
        });

使用下面的代码:

    var select = $('#benefit').empty();
    $.each(data.values, function(i,data) {
        $('#benefit').append( '<option value="'
                             + data[i].id
                             + '">'
                             + data[i].name
                             + '</option>' ); 
    });

这里 select var 没有 select 标签的对象,这就是原因。

【讨论】:

  • 他甚至没有得到结果
  • @kongaraju 你怎么能说他没有得到结果。
  • 看我的cmets问题
  • @kongaraju 他什么也没说。
  • 感谢您的帮助,现在可以正常使用了。 @LakshmanaKumar 的代码。
【解决方案3】:

试试这个... 已更新

    $('#medical_aid_name').change(function() {
        var name = $(this).val();
        $.post('ins_bene.php', { 'name': name },
        function(data) {
            alert(data)  // [object][object],[object][object]
            $('#benefit').empty();
            $.each(data, function(key, value) {
                $('#benefit').append('<option value="' + value.id + '">' + value.name + '</option>');
            });
        }, "json");
    });

【讨论】:

  • 如何回答这个问题
  • 那个是全局变量,不会清除,你自己试试吧
  • 通过 var select = $('#benefit').empty(); 保持为空
  • @Stoppie Chandru DiGi 抱歉,不需要var select = $('#benefit').empty();。只需使用$('#benefit').empty(); 我不知道 php。但在 jQuery 中,它是将值附加到列表框的方式。
  • @Stoppie Chandru 检查使用警报(数据);。你应该得到[对象] [对象]。如果你没有得到任何东西,那么检查你的 mysql 函数
【解决方案4】:

在 script.js 中更改它

$.each(data.values, function(key, value)

$.each(data, function(key, value) {

将密钥values 分配给$result

while ($row = mysql_fetch_array($select_query)) {
  $result['values'] = array(
    'id' => $row['id'],
    'name' => $row['name']
  );
}

【讨论】:

    【解决方案5】:

    这应该可以工作

    while ($row = mysql_fetch_array($select_query)) {
      $result['values'] = array(
        'id' => $row['id'],
        'name' => $row['name']
      );
    }
    

    【讨论】:

      猜你喜欢
      • 2015-06-25
      • 2020-12-15
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 1970-01-01
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多