3

我正在使用自动完成功能来显示数据库中的值。该文件如下:

自动完成.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'];

    }
}
  ?>

上述文件返回将在文本文件中显示的名称。除此之外,我想将 id 作为隐藏字段传递,以便我可以在 php 中处理数据

我应该怎么做?

4

3 回答 3

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);

确保在代码中创建一个隐藏字段。

检查一下: 如何在 jquery ui 自动完成中使用 json 传递隐藏的 id?

于 2013-09-27T06:06:44.733 回答
1

为此,您可以使用隐藏的输入类型。

<input type="hidden" value=".$row['id']."/>
于 2013-09-27T06:02:34.413 回答
0

我不想回答你的问题有mysql_query两个原因:

1、mysql_query官方状态为Deprecated:mysql扩展已弃用,未来将被移除:改用mysqli或PDO

2.易受 SQL 注入攻击,请参阅如何在 PHP 中防止 SQL 注入?

改用 PDO(PHP 数据对象),它是安全的并且是面向对象的 这里有一些教程可以在 12 个视频中掌握这一点http://www.youtube.com/watch?v=XQjKkNiByCk

用这个替换你的 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>
于 2013-09-27T06:21:10.633 回答