0

ID入力した数字をもとにデータベースから3つの情報を取得したいです。HTMLマークアップに5番を入力すると。関連する番号の、、を<input id="id">取得し、各結果の専用ボックスに挿入しますnameageemail<input>

クエリから複数の結果を取得し、その結果を<input>マークアップに入力する方法

<input id="name">  //insert name from db
<input id="age">  //insert name from db
<input id="email">  //insert name from db

以下は私のコードです。nameデータベースからのみを取得し、<input id="name">マークアップに入力します。

私のJquery

var id = $('input#id').val(); //get value of input box
$.post('./ajax/getdata.php', {id: id}, function(data) //pass this to getdata.php
{
$('input#name').val(data);

}

私のgetdata.php

if (isset($_POST['id']) === true && empty($_POST['id']) === false) 
{
require '../connect.php';

$query = "SELECT * FROM `members` WHERE `memberNo` = '" . mysql_real_escape_string(trim($_POST['id'])). "' ";
$result = $db->query($query);

   while ($row = $result->fetch_assoc()) 
   {
   echo $row['firstname'];

   }
}
4

1 に答える 1

0

まず第一に、一意である必要があるため、ループidを実行する必要はありません。while

また、ajax 呼び出しを返すため、JSON が最適なデータ形式 (および jQuery のデフォルト) である可能性があります。

だからあなたのgetdata.phpで:

if (isset($_POST['id']) === true && empty($_POST['id']) === false) 
{
    require '../connect.php';

    $query = "SELECT * FROM `members` WHERE `memberNo` = '"
            . mysql_real_escape_string(trim($_POST['id'])). "' ";
    $result = $db->query($query);
    $row = $result->fetch_assoc()
    // setting the appropriate content type
    header('Content-Type: application/json');

    echo (json_encode($row));
}

そして、これをsuccessコールバックで処理します。

var id = $('input#id').val(); //get value of input box
$.post('./ajax/getdata.php', {"id": id}, function(data)
{
    $('input#name').val(data.firstname);
    $('input#age').val(data.age);
    $('input#email').val(data.email);
}
于 2013-09-26T03:39:58.247 に答える