我試圖使用MySQL數據填充某些表單域。在'onexit'或'onsubmit之後,查詢mysql並填充表單域而不離開頁面php js
我希望能夠在文本字段中輸入值,使用字段中的值搜索數據庫,然後使用結果填充表格字段的其餘部分而不離開頁面。
任何指導將不勝感激。
我試圖使用MySQL數據填充某些表單域。在'onexit'或'onsubmit之後,查詢mysql並填充表單域而不離開頁面php js
我希望能夠在文本字段中輸入值,使用字段中的值搜索數據庫,然後使用結果填充表格字段的其餘部分而不離開頁面。
任何指導將不勝感激。
我最終修改了我找到的這個腳本。它不在同一頁面上,但執行我需要的功能。當用戶輸入一個值並退出該字段時,將根據表格檢查該值以進行匹配。然後它將結果返回給帶有字段值的調用頁面。
這是擺在頁面的表單元素:
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\">";
}
使用jQuery後,從數據庫
獲得的數據在頁面輸入:
$.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搜索。您需要使用FULLTEXT搜索數據庫(有關此處的大量文檔http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html)。或者,如果它不是一個複雜的搜索,你應該只使用一個SELECT * WHERE。然後回顯您找到的數據。
AJAX請求會給你回傳什麼是echo'd,然後你可以使用一些JQuery來填充你喜歡的數據。