2013-04-30 82 views
-3

我现在已经有了数据库拉取结果,但是它将它们拉到PHP脚本页面(test.php)上。我想在名为'DOB'和'email'的表单框中显示结果。在同一页上显示回显数据库结果

表单页面:

<form id="form_53" name="login" action="test.php"> 

<input type="text" name="username"> 

<input type="text" name="DOB"> 

<input type="text" name="email"> 

<input type="submit" style="position:absolute;> 
</form> 

PHP:

<?php 

$host=""; // Host name 
$username=""; // Mysql username 
$password=""; // Mysql password 
$db_name=""; // Database name 
$tbl_name=""; // Table name 

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

$username = $_POST['username']; 
    echo '</br>'; 
$query = mysql_query("SELECT * FROM `members` WHERE `username`='$username'"); 

while($result = mysql_fetch_array($query)) { 
//display 
echo $result['DOB']; //I want this displayed on the 'DOB' form box 
echo $result['email']; //I want this displayed on the 'email' form box 
} 
?> 
+0

只是你不应该使用尖mysql_功能,因为他们不支持,也该代码对mysql注入非常开放。 – lemondrop 2013-04-30 00:17:42

+0

我该如何解决这个问题,对不起我是PHP新手 – 2013-04-30 00:18:53

+0

使用诸如PDO之类的引擎将消除mysql注入的可能性,并且它仍然受支持。你可以在这里阅读更多:http://stackoverflow.com/questions/60174/how-to-prevent-sql-injection-in-php – lemondrop 2013-04-30 00:20:33

回答

2

您可以设置它在一个表单元素的value属性。例如:

<input type="text" name="DOB" value="<?php echo $result['DOB']; ?>" /> 
+0

谢谢,我该怎么做echo $ result ['DOB'];和 echo $ result ['email'];在test.php表单上? – 2013-04-30 00:20:00

1

您可以对jQuery使用AJAX调用。我会修改PHP文件以JSON格式回显,以便可以轻松解析响应。这使得您不必刷新页面。

编辑PHP(更换echo语句):

echo json_encode(array($result['DOB'], $result['email']));

表单页面的JavaScript:

$("#form_53").submit(function() { 
    var un = $("input[name=username]").val(); 
    $.post("test.php", { username: un }, function(data) { 
     data = JSON.decode(data); 
     $("input[name=DOB]").val(data[0]); 
     $("input[name=email]").val(data[1]); 
    } 
    return false; 
}