从MySQL加载数据并使用jQuery Mobile,PHP选择填充下拉列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从MySQL加载数据并使用jQuery Mobile,PHP选择填充下拉列表相关的知识,希望对你有一定的参考价值。

我正在开发一个PhoneGap应用程序,它从mysql数据库中获取一些信息。当我尝试打开一个包含两个需要在页面加载时填充的选择输入的html页面时,我很挣扎,每个输入都包含来自两个不同表的数据。我不是为什么,但他们没有人口稠密。请非常欢迎任何帮助。

HTML代码

<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脚本都是SELECTS

<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

<?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

<?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);
?>

再一次,我感谢你花时间看看这段代码试图帮助我。谢谢。

答案

代码对我来说没问题。你设置了正确的标题吗?

header('Content-Type: application/json');
echo json_encode($data);
另一答案

乍一看,代码看起来很好。你在控制台里有什么?那里有所有的json数据吗?否则试试

$.each(data,function(index,item) 
{
    $('<option>').val(item.id).html(item.job_name).appendTo("#job_id");
});

更新:你可以尝试添加

error_log中(的print_r($数据,1));

之前

echo json_encode($ data);

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

另一答案

我认为它已经完成了DOM准备和执行Jquery脚本之间的时间安排。

在这种情况下,您的脚本在DOM准备好之前执行。如果您正在引用的某些对象尚未准备好在DOM中,那么JQuery无法找到该对象,那么JQuery就会停止执行。

以上是关于从MySQL加载数据并使用jQuery Mobile,PHP选择填充下拉列表的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP+jQuery AJAX 检查 MySQL 数据库的更改并加载更改?

jquery移动加载页面并获取数据

mysql数据加载后继续jQuery

如何使用 jQuery、PHP 和 MySQL 加载 JSON 数据

使用 jQuery、PHP 和 MySQL 为单选按钮加载 JSON 数据

使用 jQuery、PHP 和 MySQL 为单选按钮加载 JSON 数据