2012-07-07 19 views

回答

0

我最終修改了我找到的這個腳本。它不在同一頁面上,但執行我需要的功能。當用戶輸入一個值並退出該字段時,將根據表格檢查該值以進行匹配。然後它將結果返回給帶有字段值的調用頁面。

這是擺在頁面的表單元素:

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\">"; 
    } 
1

使用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發送變量,只有值),然後使用數組來填充你的輸入。

這個想法是在沒有重新加載頁面的情況下發送數據,將其轉換爲字符串,一旦我們獲取數據就將其轉換回來,然後按照我們的希望使用它。

1

您可以使用AJAX - 使用您的輸入提交按鈕來激發一個php文件來搜索數據庫。

這將我們帶到MySQL搜索。您需要使用FULLTEXT搜索數據庫(有關此處的大量文檔http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html)。或者,如果它不是一個複雜的搜索,你應該只使用一個SELECT * WHERE。然後回顯您找到的數據。

AJAX請求會給你回傳什麼是echo'd,然後你可以使用一些JQuery來填充你喜歡的數據。

相關問題