3

MySQL データベースから情報を取得する PhoneGap アプリケーションを開発しています。ページの読み込み時に入力する必要がある 2 つの選択入力を含む HTML ページを開こうとすると、苦労します。それぞれに 2 つの異なるテーブルからのデータが含まれています。理由はわかりませんが、人口が増えていません。どんな助けでも大歓迎です。

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 スクリプト両方の選択

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

もう一度、このコードを見て私に手を差し伸べてくれてありがとう。ありがとうございました。

4

3 に答える 3

0

一見すると、コードは問題ないように見えます。コンソールには何がありましたか? すべてのjsonデータはそこにありますか? それ以外の場合は試してください

$.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 をチェックして、ページをロードしたときにサーバー側にデータが入力されているかどうかを確認します

于 2013-10-09T18:10:09.013 に答える
0

DOMの準備ができてからJqueryスクリプトを実行するまでのタイミングと関係があると思います。

この場合、スクリプトは DOM の準備が整う前に実行されます。参照している一部のオブジェクトが DOM でまだ準備ができていない場合、JQuery はそのオブジェクトを見つけることができず、JQuery は単純に実行を停止します。

于 2013-12-16T11:27:43.010 に答える
0

コードは私には大丈夫に見えます。正しいヘッダーを設定しましたか?

header('Content-Type: application/json');
echo json_encode($data);
于 2013-10-09T18:15:30.640 に答える