2015-02-07 42 views
-1

我的窗體已receipt_no文本框呼應..PHP PDO代碼搜索和文本框

我需要搜索文本框上的模糊事件或文本框的按鍵按下事件的數據。

從這個rec​​eipt_no textbox.I需要搜索數據庫和其他文本框內部回聲值...

請幫助...這個文本框內

<?php 
function myFunction() 
{ 
if(isset($_POST['receipt_no'])) 
{  
    $receipt_no = $_POST['receipt_no']; 
    $result = $database->getRow("SELECT receipt_no,scheme_name FROM scheme_master where receipt_no = :receipt_no",array(':receipt_no'=>$receipt_no)); 
    if($result!=0) 
    { 
     while ($row = $result->fetchObject()) 
     { 
      echo $row->scheme_name; 
     } 
    } 
} 
} 
?> 
<form action="" method="post"> 
    <input type="text" name="receipt_no" onblur="myFunction()" /> 
</form> 

回聲值---

<input type="text" value="<?=$scheme_name;?>" name="scheme" class="field size2" /> 
+1

你對使用AJAX有任何線索嗎?因爲這就是你需要的。 – deceze 2015-02-07 11:47:15

+0

您正試圖以稱爲Javascript functinon的方式調用php函數。這是行不通的!你應該在谷歌上查找一些javascript/AJAX代碼:[http://www.w3schools.com/js/](http://www.w3schools.com/js/) – Goudgeld1 2015-02-07 11:47:51

+0

你需要一些實時搜索這裏是一個很好的例如希望它有幫助:http://www.phpgang.com/how-to-integrate-live-search-in-php-and-mysql-with-jquery_309.html – 2015-02-07 11:50:37

回答

0

正確的兩種方法,只有PHP和AJAX JavaScript的一些提到。

第一隻PHP:

<? $db=new PDO(); 
if($_POST&&isset($_POST['submit'])){ 
    $result=$db->prepare('SELECT receipt_no,scheme_name FROM scheme_master WHERE receipt_no=:receipt_no');//not sure why you're entering an array? 
    $result->bindParam(':receipt_no',$_POST['scheme'],PDO::PARAMETER); 
    $result->execute(); 
    while($row=$result->fetch(PDO::FETCH_ASSOC)){ 
     echo$row['scheme_name']; 
    } 
}?> 
<!--Form next--> 
<form name='findReceipt' action='' method="POST"> 
    <input name='scheme' type='text' value='<?echo$scheme_name;?>'/> 
    <input name='submit' type='submit' value='Get'/> 
</form> 

你不需要的屬性onblur屬性此方法。這是一種「自我」操作頁面方法。

的下一個方法是JavaScript的方法,其中,可以使用的onblur屬性:

myFunction(){ 
    var xmlhttp=XMLHttpRequest(); 
    xmlhttp.open('POST','getResult.php',false); 
    xmlhttp.send("receipt_no="+this.value);//if this doesn't work, use the following line 
    //document.getElementByName('scheme').value 
    document.getElementById('resultHere').innerHTML=xmlhttp.responseText; 
} 

上面是一個非常基本的功能,也不會在工作IE5-6和可能需要一些報頭數據等,並!對於那些喜歡傻庫jQuery的

$('input[name="scheme"]').blur(function(){ 
    var self=this; 
    $.ajax({ 
     type:'POST', 
     data:{receipt_no:$(self).value()}, 
     beforeSend:function(xhr){ 
      if($(self).value().length<5)xhr.abort(); 
     }, 
     success:function(result){ 
      $('#result').html(result); 
     } 
    }); 
} 

有些人可能認爲用於此相對的GET方法POST但我更喜歡POST整體。