通过php填充多个选择框jquery mobile

Posted

技术标签:

【中文标题】通过php填充多个选择框jquery mobile【英文标题】:Populate mulitple select box jquery mobile via php 【发布时间】:2013-04-10 17:41:10 【问题描述】:

我发现这个链接适用于 jquery 但不适用于 jquery-mobile 多选

Link to other post

我可能会出错的任何想法。一旦我添加了多个 =“多个”,我就没有显示任何结果。另外,如果我丢失了它,我没有得到 jquery 移动主题,但我确实得到了我的列表

html

<!DOCTYPE HTML>
<html>
<head>
      <meta charset="utf-8" />
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <meta name="apple-mobile-web-app-status-bar-style" content="black" />
        <title>
        </title>
        <link rel="stylesheet" href="css/logout-button.min.css" />
         <link rel="stylesheet" href="css/jquery.mobile-1.3.0.min.css" />
        <link rel="stylesheet" href="css/my.css" />
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        </script>
        <script src="js/jquery.mobile-1.3.0.min.js"></script>
        <script src="js/jquery.cookies.2.2.0.min.js"></script>
</head>

<body>
<div data-role="page" id="index4">

           <div data-theme="a" data-role="header">
        <a data-role="button" data-direction="reverse" data-rel="back" data-transition="slide"
         data-icon="arrow-l" data-iconpos="left" class="ui-btn-left">
            Back
        </a>
        <h3>
           Event Details
        </h3>
    </div>

         <div data-role="content">
             <form id="eventForm" name="eventForm">

                    <div data-role="fieldcontain">
<script type="text/javascript">
$(document).on("pagebeforeshow", "#index4", function() 
$(function()
      var items="";
      $.getJSON("event-details.php",function(data)
        $.each(data,function(index,item) 
        
          items+="<option value='"+item.email+"'>"+item.username+"</option>";
        );

        $("#a1_title").html(items); 
        $("#a1_title").trigger("change");
      );
    );
  );  
</script>
        <select id="a1_title"  multiple="multiple">
        </select>
            </div>
                    <div data-role="fieldcontain">
                        <label for="manual">Add Emails</label>
                        <textarea cols="40" rows="8" name="emails" id="emails"></textarea>
                    </div>
                        <input type="submit" value="Submit" id="submitEventButton">
                </form>
        </div>
</div>  
</body>
</html>

我的 php

require_once("../backend/functions.php");
dbconn();
                            $id = $CURUSER["id"];
                            $res = "SELECT email,username FROM users left join cal_contacts on cal_contacts.contactid = users.id WHERE cal_contacts.userid = $id";
                            $res1 = mysql_query($res);
                        $data = array();
                            while($row = mysql_fetch_array($res1))
                             
                            $data[] = $row;

                            
                            echo json_encode($data);

【问题讨论】:

对不起,它确实有效,但您必须使用移动设备而不是我的网络浏览器从列表中选择 $("#a1_title").trigger("change");成功了。我更新了置顶帖 【参考方案1】:

jQuery Mobile 与经典的多选框有点不同。

你没有做错任何事,你缺少一个额外的属性。没有它,jQuery Mobile 多选无法成功创建。

额外需要的属性是这个:

data-native-menu="false"

工作示例:http://jsfiddle.net/Gajotres/dEXac/

$(document).on('pagebeforeshow', '#index', function()    
    // Add a new select element    
    $('<select>').attr('name':'select-choice-1','id':'select-choice-1','multiple':'multiple', 'data-native-menu':'false').appendTo('[data-role="content"]');
    $('<option>').html('Select option!').appendTo('#select-choice-1');
    $('<option>').attr('value':'1').html('Value 1').appendTo('#select-choice-1');
    $('<option>').attr('value':'2').html('Value 2').appendTo('#select-choice-1');    
    // Enhance new select element
    $('select').selectmenu();
);

还有一件事,你不需要使用:

$("#a1_title").trigger("change");

在你的情况下这是一个矫枉过正,你只需要增强一个动态选择,这样做:

 $('select').selectmenu();

要了解更多信息,请查看我的另一篇文章:jQuery Mobile: Markup Enhancement of dynamically added content

【讨论】:

以上是关于通过php填充多个选择框jquery mobile的主要内容,如果未能解决你的问题,请参考以下文章

从文本框中使用 jquery mobile 填充下拉列表

使用 jquery 和 laravel 填充多个选择框

jquery如何进行多个ajax调用[重复]

使用 JQUERY、AJAX 和 PHP 填充选择框

Jquery Mobile - 使用数据预填充选择列表

JQUERY & 选择框不更新数据库