2014-10-17 83 views
3

用第一个文本框的输入自动填充第二个文本框。就像如果我选择Jane作为名字,我希望第二个文本框从数据库中检索姓,并自动用Doe填充它。我没有在第二个文本框没有自动输入不知道我做错了什么。用第一个文本框输入自动填充第二个文本框

这里是test.php的代码

<?php 
 

 
?> 
 
<script src="jquery-1.11.1.min.js"></script> 
 
<script> 
 
$(document).ready(function(){ 
 
\t $("#firstName").change(function(){ 
 
\t \t var firstName=$(this).val(); 
 
\t \t if(firstName != ''){ 
 
\t \t \t  $.ajax({ 
 
           type:"post", 
 
           url:"insert_process.php", 
 
           data:"firstName="+firstName, 
 
\t \t \t \t \t \t \t datatype:"json", 
 
\t \t \t \t    success:function(data){ $("#lastname").val(data); 
 
\t \t \t \t \t \t \t  $('#ename').css("background-color","#B3CBD6" ) 
 
\t \t \t \t \t \t \t $('#ename').animate({backgroundColor: "#fff",}); 
 
\t \t \t \t \t \t \t } 
 
           
 
\t              }); 
 
\t \t } 
 
\t \t else{ 
 
\t \t \t $("#lastname").val(""); 
 
\t \t \t } 
 
\t \t }); 
 
\t }); 
 
</script> 
 
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<title>Systems Request </title> 
 

 
</head> 
 
<body> 
 

 
<div align="center"> 
 

 
<form action = "insert.php" method ="post" class="form" style="width: 285px; height: 192px"> 
 

 
<br><br>First Name<br> 
 
<input type="text" id="firstName" name="firstName"> 
 

 
<br>&nbsp;Last Name<br> 
 
<input type="text" id="lastname" name="lastname" ><br><br> 
 

 
<input type="submit" value= "Submit Name "><br> 
 

 
</form> 
 
</div> 
 
</body> 
 
</html>

,然后这里是insert_proccess.php代码

<?php 
 
header('Content-Type: application/json'); 
 
$host = "localhost"; 
 
$user = "root"; 
 
$db_name= "people"; 
 
$pass= "systems399"; 
 
$con = mysql_connect($host, $user, $pass); 
 
$db_conx=mysql_select_db("people", $con); 
 
$fname= $_POST["firstName"]; 
 
\t $sql="SELECT * FROM names WHERE firstName='$fname' "; \t 
 
\t \t $query= mysqli_query($db_conx, $sql); 
 
\t $row = mysqli_fetch_array($query2 MYSQLI_ASSOC); 
 
\t $rc \t = $row["lastname"]; 
 

 
echo json_encode ($rc); 
 
    
 
?>

+1

我不完全知道如何解决这个问题不过,作为一个建议我会阅读SQL注入(例如http://php.net/manual/en/security.database.sql-injection.php)。你的代码有严重的安全问题。考虑如果我要在名字框中输入以下内容,将会执行什么样的SQL:'';删除名称; SELECT * FROM names WHERE firstName ='' – extols 2014-10-17 16:39:12

+0

我还是新来的,必须要弄清楚如何改写那个以获得更好的安全性谢谢 – Donny 2014-10-17 16:46:48

回答

1

的是要求实际发送(您可以检查网络标签)?你能提醒返回的数据吗?基本上是更有帮助的,我需要的确切位置的过程中出现故障,快速浏览,尝试建立你的数据结构更喜欢它的更多信息:

data: { "firstName": firstName } 
+0

它还没有被插入。它没有获得警报返回数据。我输入简而没有任何反应。当在名字文本框上输入Jane时,它应该自动在第二个文本框中填写姓氏Doe – Donny 2014-10-17 16:42:43

+1

@Donny然后,问题可能发生在您的脚本中或发送到您的脚本中。你可以做'$ print_r($ _ REQUEST);'在脚本中吗?响应会告诉我们,如果数据正在发送 – Typhomism 2014-10-17 16:44:40

+0

是否我会把它放在脚本中。我对这个尝试去学习的新手很感兴趣。 – Donny 2014-10-17 16:48:15

相关问题