首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jQuery手机从MySQL加载数据并填充下拉选择

使用jQuery手机从MySQL加载数据并填充下拉选择
EN

Stack Overflow用户
提问于 2013-10-10 02:02:06
回答 3查看 10.8K关注 0票数 3

我正在开发一个从MySQL数据库获取一些信息的PhoneGap应用程序。当我试图打开一个包含两个select输入的HTML页面时,我遇到了困难,这两个输入需要在页面加载时填充,每个输入都包含来自两个不同表的数据。我不知道为什么,但他们并没有得到人口。请不要客气,我们将非常欢迎您的帮助。

HTML代码

代码语言:javascript
运行
复制
<div data-role="content">
  <p></p>
  <form id="cname" align="left" action="post" data-ajax="false" >
    <label for "id">Employee's Name:</label><br/>
    <select name="id" id="id"></select><br/>
    <label for "job_id">Job's Name:</label><br/>
    <select name="job_id" id="job_id"></select><br/>
    <input type="hidden" name="latitued" id="latitued" value="">
    <input type="hidden" name="longitude" id="longitude" value="" >
    <input type="hidden" name="goo_map_api" id="goo_map_api" value="">
    <input type="submit" value="Clock-In" id="enviar_in" data-inline="true">
  </form>
</div

Jquery脚本同时选择

代码语言:javascript
运行
复制
<script type="text/javascript">
$(document).ready(function(e){
  var items="";
  $.getJSON("get_emp.php",function(data){
    $.each(data,function(index,item) 
    {
      items+="<option value='"+item.id+"'>"+item.fullName+"</option>";
    });
    $("#id").html(items); 
  });
});
</script>


<script type="text/javascript">
$(document).ready(function(e){
  var items="";
  $.getJSON("get_job.php",function(data){
    $.each(data,function(index,item) 
    {
      items+="<option value='"+item.id+"'>"+item.job_name+"</option>";
    });
    $("#job_id").html(items); 
  });
});
</script>

PHP文件get_emp.php

代码语言:javascript
运行
复制
<?php
$mysqli = new mysqli($mysql_hostname,$mysql_user, $mysql_password, $mysql_database);
$q = "select id, fullName from employees";
$sql = $mysqli->query($q);
$data = array();
while($row = mysqli_fetch_array($sql, true)){
    $data[] = $row; 
};
echo json_encode($data);
?>

PHP文件get_job.php

代码语言:javascript
运行
复制
<?php
$mysqli = new mysqli($mysql_hostname,$mysql_user, $mysql_password, $mysql_database);
$q = "select id, job_name from jobs";
$sql = $mysqli->query($q);
$data = array();
while($row = mysqli_fetch_array($sql, true)){
    $data[] = $row; 
};
echo json_encode($data);
?>

再次感谢您花时间查看这段代码,希望您能帮我一把。谢谢。

EN

回答 3

Stack Overflow用户

发布于 2013-10-10 02:10:09

乍一看,代码看起来没问题。你在控制台里有什么?所有的json数据都在那里吗?否则请尝试

代码语言:javascript
运行
复制
$.each(data,function(index,item) 
{
    $('<option>').val(item.id).html(item.job_name).appendTo("#job_id");
});

更新:您可以尝试添加

error_log(print_r($data,1));

在此之前

echo json_encode($data);

在get_emp.php中,检查php_error.log,查看加载页面时服务器端是否填充了数据

票数 0
EN

Stack Overflow用户

发布于 2013-10-10 02:15:31

代码在我看来没问题。您设置正确的标题了吗?

代码语言:javascript
运行
复制
header('Content-Type: application/json');
echo json_encode($data);
票数 0
EN

Stack Overflow用户

发布于 2013-12-16 19:27:43

我认为这与准备好DOM和执行Jquery脚本之间的时间有关。

在这种情况下,您的脚本在DOM准备好之前执行。如果你引用的一些对象在DOM中还没有准备好,因此JQuery找不到这个对象,那么JQuery就会停止执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19279377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档