0

HTMLページに2つのフォームがあり、最初のフォーム送信を使用してphp/mysqlクエリでデータベースから選択し、JSONを使用してエンコードして、ページを離れることなく2番目のフォームに選択オプションを設定したいと考えています。最初のフォームと php は配列を送信していますが、2 番目のフォームは入力されていません。何が欠けているのかわからないので、助けていただければ幸いです。以下のhtml、php、およびクエリを参照してください...

HTML

<form method="post" action="find.php" id="find" >
    <div class="input-box">
        <label>Last Name</label>
        <input type="text" name="lname"/>
    </div>
    <div class="input-box">
        <label>Phone</label>
        <input type="text" name="phone" />
    </div>
    <div class="submit">
        <input type="submit" value="Select" />
    </div>
</form>
<div><h1>Checkin</h1></div>
<form method="post" action="checkin.php" id="contact-us">
<div id="contact-us-message"></div>
    <input type="hidden" name="date" id="date" />
    <select id="clients" name="clients">
    </select>
    <div class="submit">
        <input type="submit" value="Submit"  />
    </div>
</form>

PHP

$lastname = $_POST['lname'] ;
        $number = $_POST['phone'] ;
        $q = "select Site_ID, FirstName, LastName, Email, Phone, Message,     ParentName from ClientInfo where LastName = '$lastname' and Phone = '$number'";
        $sql = mysql_query($q);
        $data = array();
        while($row = mysql_fetch_array($sql, true)){
            $data[] = $row; 
        };
        echo json_encode($data);

脚本

<script type="text/javascript">
$("#find").submit(function(){
  $.getJSON('checkin.php',function(data){
    var items = '';
    $.each(data,function(name,value) {
        items += "<option type='text' value='"+value.Site_ID+"'>"+value.FirstName+" "+value.LastName+" </option>" ;
    });
    $("#clients").append(items);  
  });
});
</script>

編集

IDの問題を修正しました。送信すると、phpページに移動し、正しい配列がエコーされます。しかし、それは html ページを離れるべきではありませんでした。理由を知っている人はいますか?

配列

[{"Site_ID":"10000007","FirstName":"Drew","LastName"...}]
4

2 に答える 2

1

スクリプトid="test"は、HTMLに存在しない。を含む要素に対してのみ機能します。

于 2012-12-29T03:43:43.087 に答える
0

私によると、ルールを試してみてください。Divide and Conquerつまり、コードの各部分を分割して、それぞれが適切に機能していることを見つけようとすることです (独立したコード)。

phpコードについての最初のこと

$lastname = $_POST['lname'] ;  // change to some value
$number = $_POST['phone'] ; // change to some value
$q = "select Site_ID, FirstName, LastName, Email, Phone, Message,ParentName from ClientInfo where LastName = '".$lastname."' and Phone = '".$number."'";
$sql = mysql_query($q);
$data = array();
while($row = mysql_fetch_array($sql, true)){
$data[] = $row; 
};
echo json_encode($data);

まず、適切なconcatenationクエリを実行します。そして、現在のphpコードが適切encodeに形成されているかどうかを確認してください。json

上記のコードを確認したら、コードに移動して、javascriptコードに関連するすべての変数を確認しhtmlます。ここでわかるように

$("#test").submit(function(){

testidについて言及しましたが、htmlコードではどこにも存在しません。

于 2012-12-29T03:50:52.703 に答える