在“onexit”或“onsubmit”之后,查询mysql并填充表单字段,而不离开php js页面

在“onexit”或“onsubmit”之后,查询mysql并填充表单字段,而不离开php js页面,php,javascript,mysql,Php,Javascript,Mysql,我正在尝试使用MySQL数据填充一些表单字段 我希望能够在文本字段中输入一个值,使用字段中的值搜索db,然后在不离开页面的情况下用结果填充表单字段的其余部分 任何指导都将不胜感激。使用jQuery post从数据库获取数据 在带有输入的页面上: $.post("pageWhereYouGetData.php", {valueYouWantToQueryTheDBWith: $("input.info").val()}, function(data){ var dataArray = da

我正在尝试使用MySQL数据填充一些表单字段

我希望能够在文本字段中输入一个值,使用字段中的值搜索db,然后在不离开页面的情况下用结果填充表单字段的其余部分


任何指导都将不胜感激。

使用jQuery post从数据库获取数据

在带有输入的页面上:

$.post("pageWhereYouGetData.php", {valueYouWantToQueryTheDBWith: $("input.info").val()}, function(data){
    var dataArray = data.join(", ");
    //do stuff with inputs here like: $("input.moreInfo").val(dataArray[0]) which would set the value of your input to the value of the row 'row1' from the database
});
pageWhereYouGetData.php:

$results = mysql_fetch_assoc(mysql_query("SELECT row1, row2, row3 FROM table WHERE rowName = '" . mysql_real_escape_string($_POST['valueYouWantToQueryTheDBWith']) . "'"));

$data = array($results['row1'], $results['row2'], $results['row3']);
echo explode(", ", $data);
在这里,您将创建一个填充了所需数据的数组,将其转换为字符串,然后将其回送出去。在javascript方面,您正在将其转换回数组,因为您不能通过ajax发送变量,只能发送值,然后使用数组填充输入


其思想是在不重新加载页面的情况下发送数据,将其转换为字符串,在获得数据后将其转换回,然后按照我们的意愿使用它。

您可以使用AJAX实现这一点-使用输入提交按钮启动php文件来搜索数据库

这就引出了MySQL搜索。您需要使用全文搜索数据库中的大量文档。或者,如果搜索没有那么复杂,您应该使用SELECT*WHERE。然后回显您找到的数据


AJAX请求将返回echo的内容,然后您可以使用一些JQuery来填充您喜欢的数据元素。

我最终修改了我找到的这个脚本。它不在同一页上,但执行我需要的功能。当用户输入值并退出该字段时,将对照表检查该值是否匹配。然后,它将结果返回给调用页面,并在字段中包含值

这将放置在包含表单元素的页面中:

function showData(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","get_listing_data.php?q="+str,true);
xmlhttp.send();
}


<input type="text" name="mls_id" id="mls_id" onchange="showData(this.value)">

<div id="txtHint"></div> // this is where the populated fields appear
这是执行查询并将结果返回到第一个文件(从第一个文件调用)的文件

$link = mysql_connect("localhost","name","pw") or die ("No database connection -     please try again later.");
$db = mysql_select_db("db", $link); 

$q=$_GET["q"];

$sql="SELECT * FROM table WHERE MLS_LISTING_ID = '$q'";

$result = mysql_query($sql);

while($row = mysql_fetch_array($result))
  {
 echo "<input type=\"text\" name=\"agent_name\" id=\"agent_name\" value=" . $row    ['MLS_AGENT_NAME'] . " readonly=\"readonly\">";
 echo "<input type=\"text\" name=\"sale_price\" id=\"last_name\" value=" . $row['SALE_PRICE'] . " readonly=\"readonly\">";
 echo "<input type=\"text\" name=\"street_number\" id=\"last_name\" value=" . $row['STREET_NUMBER'] . " readonly=\"readonly\">";
 echo "<input type=\"text\" name=\"street_name\" id=\"last_name\" value=" . $row['STREET_NAME'] . " readonly=\"readonly\">";
  }