Javascript 使用自动完成功能时从数据库传递隐藏值
我正在使用autocomplete来显示数据库中的值。 档案如下: autocomplete.phpJavascript 使用自动完成功能时从数据库传递隐藏值,javascript,php,jquery,autocomplete,Javascript,Php,Jquery,Autocomplete,我正在使用autocomplete来显示数据库中的值。 档案如下: 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="SE
<?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'];
}
}
?>
上面的文件返回将在文本字段中显示的名称。除此之外,我还希望将id作为隐藏字段传递,以便可以用php处理数据
我该怎么做呢?您可以使用input-type-hidden来实现这一目的
<input type="hidden" value=".$row['id']."/>
试试这个:
$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);
确保在代码中创建一个隐藏字段
选中此项:
我不想用mysql\u query回答你的问题,原因有两个: 1.mysql\u查询官方状态已弃用:mysql扩展已弃用,将来将被删除:请改用mysqli或PDO 2.易受SQL注入攻击,请参阅 使用PDO(PHP数据对象),它是安全的,并且是面向对象的 这里有一些教程,在12个视频中掌握这一点 将您的MySQL实例替换为
// 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;
//dbh只是对象的自定义名称,您可以将其命名为数据库
编辑凭据,接下来让我们查询您的代码,如果实例不在同一个文件上,即连接脚本正在被包括在内,则调用global$dbh代码>在启动sql之前,否则将对象带到当前文件
因此,您的代码将如下所示
<?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];**
?>
那么我如何在另一页中检索它呢?
<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>
在此之前,请尝试打印($row)
要查看数组的填充方式,请直接在上面的代码中选择Yes。但是您需要回显输入标记!!那么我该如何在另一个页面中检索它呢?您将获得存储在数据库中的值。您可以在您想要的任何页面上从数据库中检索该值。