【发布时间】:2014-12-13 07:02:54
【问题描述】:
用第一个文本框的输入自动填充第二个文本框。就像我选择 Jane 作为名字一样,我希望第二个文本框从数据库中检索姓氏并用 Doe 自动填充它。我在第二个文本框上没有自动输入,不确定我做错了什么。
这里是test.php代码
<?php
?>
<script src="jquery-1.11.1.min.js"></script>
<script>
$(document).ready(function(){
$("#firstName").change(function(){
var firstName=$(this).val();
if(firstName != ''){
$.ajax({
type:"post",
url:"insert_process.php",
data:"firstName="+firstName,
datatype:"json",
success:function(data){ $("#lastname").val(data);
$('#ename').css( "background-color","#B3CBD6" )
$('#ename').animate({backgroundColor: "#fff",});
}
});
}
else{
$("#lastname").val("");
}
});
});
</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> 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"];
$sql="SELECT * FROM names WHERE firstName='$fname' ";
$query= mysqli_query($db_conx, $sql);
$row = mysqli_fetch_array($query2 MYSQLI_ASSOC);
$rc = $row["lastname"];
echo json_encode ($rc);
?>
【问题讨论】:
-
我不完全确定如何解决您遇到的问题,但是作为一个建议,我会阅读关于 SQL 注入的建议(例如 php.net/manual/en/security.database.sql-injection.php)。您的代码存在严重的安全问题。考虑一下如果我在名字框中输入以下内容会执行什么 SQL:
'; DELETE FROM names; SELECT * FROM names WHERE firstName=' -
我还是新手,必须弄清楚如何重写它以获得更好的安全性谢谢