【问题标题】:Auto Fill second textbox with first textbox input使用第一个文本框输入自动填充第二个文本框
【发布时间】: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>&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"];
	   $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='
  • 我还是新手,必须弄清楚如何重写它以获得更好的安全性谢谢

标签: php mysql ajax json


【解决方案1】:

请求是否真正被发送(您可以检查网络选项卡)?你能提醒返回的数据吗?基本上为了更有帮助,我需要更多关于流程到底在哪里失败的信息,快速浏览一下,尝试设置你的数据结构,更像这样:

data: { "firstName": firstName }

【讨论】:

  • 尚未插入。它没有收到返回数据的警报。我输入简,没有任何反应。在名字文本框中输入 Jane 时,它​​应该在第二个文本框中自动填充姓氏 Doe
  • @Donny 那么问题可能出在您的脚本或发送到您的脚本的数据中。你能在你的脚本中做$print_r($_REQUEST);吗?响应将告诉我们数据是否正在发送
  • 我会把它放在脚本中吗?我是新手,我想边走边学。
  • @Donny 一开始就把它放在insert_proccess.php,然后让你的javascript提醒响应数据,让我知道它是什么
  • 所有我想通了,让它工作,谢谢你的帮助。我会尝试发布很容易工作的代码。
猜你喜欢
  • 2011-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 2022-07-16
  • 2010-12-13
  • 1970-01-01
相关资源
最近更新 更多