2013-09-27 69 views
3

我在啓動自動完成以顯示數據庫中的值。 該文件如下:使用自動完成功能時,從數據庫傳遞隱藏值

autocomplete.php

<?php 
    require_once "../includes/conf.php"; 
$q=$_GET['q']; 
$my_data=mysql_real_escape_string($q); 
//$mysqli=mysql_connect('localhost','root','','autofield') or die("Database Error"); 
$sql="SELECT vName,id FROM employee WHERE vName LIKE '%$my_data%' ORDER BY vName"; 
$result = mysql_query($sql) or die(mysql_error()); 

if($result) 
{ 
    while($row=mysql_fetch_array($result)) 
    { 
     echo $row['vName']." </n>".$row['id']; 

    } 
} 
    ?> 

上述文件retuens將顯示在提交的文本名稱。除此之外,我希望將id作爲隱藏字段傳遞,以便我可以在php中處理數據。我應該如何處理它?

回答

1

您可以利用爲此目的隱藏的輸入類型。

<input type="hidden" value=".$row['id']."/> 
+0

在上面的代碼中直接?或者afetr php腳本? – user2822187

+0

在此之前嘗試'print_r($ row);'看看如何填充數組 – WeTheBrains

+0

是直接在上面的code.but你將需要回顯輸入標籤! – Dash

1

試試這個:

$array = array(); 
while($row=mysql_fetch_array($result)) 
{ 
    array_push($array ,array("value"=>$row['id'],"label"=>$row['vName'])); 
} 

和jQuery代碼:

terms.push(ui.item.label); 
$("#hidtextboxid").val(ui.item.value); 

確保你在你的代碼中創建一個隱藏字段。

檢查: how to pass hidden id using json in jquery ui autocomplete?

0

我不想回答與mysql_query你的問題有兩個原因:

的mysql_query正式身份是不推薦使用:MySQL擴展被棄用,並將在被刪除未來:使用mysqli或PDO代替

2.它容易受到SQL注入攻擊,請參閱How can I prevent SQL injection in PHP?

使用PDO(PHP數據對象),相反,它被固定,它是 這裏有一些教程掌握這12個視頻http://www.youtube.com/watch?v=XQjKkNiByCk

與此

// instance of pdo 
$config['db'] = array 
(
    'host' => '', 
    'username' => '', 
    'password' => '', 
    'dbname' => '' 
); 

$dbh = new PDO('mysql:host=' . $config['db']['host'] . 
';dbname=' . $config['db']['dbname'], 
$config['db']['username'], 
$config['db']['password']); 
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
global $dbh; 
取代你的MySQL實例面向對象

// dbh只是對象的自定義名稱,您可以將其命名爲數據庫

編輯證書,接下來讓我們查詢您的代碼,如果實例不在同一個文件中,即包含連接腳本,則調用在global $dbh;所以你拿起對象到當前文件,否則

使你的代碼看起來像這樣

<?php 

global $dbh; 
//lets prepare the statement using : to input what ever variables we need to (securely) 
$displayData= $dbh->prepare("SELECT vName,id FROM employee WHERE vName LIKE :my_data ORDER BY vName"); 
    $displayData->bindValue(':my_data', $my_data , PDO::PARAM_STR); 
//then we execute the code 
    $displayData->execute(); 
//store the result in array 
    $result = $displayData->fetchAll(); 
print_r($result); //take a look at the structured 

//depending on the structure echoing could be like **echo $result[0][theIdYouTrynaGet];** 

?> 

我將如何找回它,然後在其他頁面,然後再開始你的SQL?

<html> 
<?php 
include_once '/*the path of your file where the above is happening*/'; 
<input type="hidden" value="<?php echo $result['pass in your parameters'] ?>"/> 
?> 
<html> 
相關問題