0

MySql データベースから HTTP フォームにデータをロードしたい テキストに を入力すると、人の名前がロードされるはずです

<html>
<head>
    <script type="text/javascript">
    function FetchUser(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }
else
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    var data = JSON.parse(xmlhttp.responseText);
  }
  }
xmlhttp.open("GET","finduser.php?q="+str,true);
xmlhttp.send();
}
this.form.name.value=data.name;
this.form.age.value=data.age;
</script>
</head>
<body>
<form method="post" >
Id<input type="text"  name="id" size="5" />    </br>
Name<input type="text" id="name" name="name"  onclick="Fetchuser(this.form.id.value)" ></br>
Age<input type="text" id="age" name="" size="2" /></br>
</form>
</body>
</html>

そのための PHP コード。

<?php
$q=$_GET["q"];
$con = mysql_connect('localhost', 'root', '125');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("test", $con);

$sql="SELECT * FROM wow WHERE id = '".$q."'";
$resul = json_encode(mysql_query($sql));
echo $resul;
?> 

私の質問は、名前と年齢の両方をテキスト ボックスに表示するにはどうすればよいかということです。これを試しましたが、まだデータをロードできません

4

3 に答える 3

2

json_encodeを使用して、関連するすべてのフィールドを含むjsonを返すことができ、javascriptで各フィールドをそれが属する場所に配置します。

$result = json_encode(mysql_query($sql));
echo $result; // don't forget to push the output or responseText is null.

そしてjavascriptで:

var data = JSON.parse(xmlhttp.responseText);

次に、data.name_of_the_fieldを使用してデータにアクセスします

于 2012-06-27T11:52:55.017 に答える
1
 <?php
 $rs=mysql_fetch_object($result );
 $name=$rs->name;
 $age=$rs->age;
 ?>
  Name<input type="text" name="name"  value="<?php echo $name;?>" />
  Age<input type="text" name="" size="2" value="<?php echo $age;?>"  />
于 2012-06-27T12:05:50.880 に答える
0

idlikeをテキスト ボックスに入力して、 , で割り当てることができるようにします<input id="name"<input id="age"document.getElementById("name")document.getElementById("age")

于 2012-06-27T11:57:17.600 に答える