包含2个参数的数组,用于自动完成jquery

时间:2016-12-23 14:59:10

标签: php jquery autocomplete

这是我的代码:

<script type="text/javascript">
$("#rechercheVilleChargement").autocomplete({
    source : 'http://localhost:8080/SuiviCollectes/MODEL/autocomplete.php',
    select: function (event, ui) {
        $("#rechercheVilleChargement").val(ui.item.label); // display the selected text
        $("#rechercheVilleChargementDPT").val(ui.item.value);
    }
});

源代码:

<?php

try
{
    $bdd = new PDO('mysql:host=localhost;dbname=x;charset=utf8', 'x', 'x');
    array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e)
{
    die('Erreur: ' . $e->getMessage());
}

$term = $_GET['term'];

$requete = $bdd->prepare('SELECT ville_nom, ville_departement FROM villes WHERE ville_nom LIKE :term ORDER BY ville_population_2012 DESC LIMIT 15'); // j'effectue ma requête SQL grâce au mot-clé LIKE
$requete->execute(array('term' => '%'.$term.'%'));

$array = array(); // Création du tableau

/* styles PDOStatement::fetch */

while($donnee = $requete->fetch())
{
    array_push($array, $donnee['ville_nom'] . ' (' . $donnee['ville_departement'] . ')'); // Ajout de la donnée au tableau
}

echo json_encode($result); //Conversion en Json

我的问题是,如何从php中获取2个值?我试着这样做:

$result = $requete->fetchall(PDO::FETCH_ASSOC);

echo json_encode($result); //Conversion en Json

但是当我尝试这样的事情时:

$("#rechercheVilleChargement").val(ui.item.ville_nom); // display the selected text
$("#rechercheVilleChargementDPT").val(ui.item.ville_departement);

自动填充列表为空。

我希望$("#rechercheVilleChargement").val(ui.item.label)为一个sql列的值,$("#rechercheVilleChargementCP").val(ui.item.value)为另一个,以便将值放入输入中,其ID为rechercheVilleChargementCP

第二个问题: 我能创造类似的东西吗?     $("#rechercheVilleChargement").val(ui.item.cityname)

ui.item不可更改?

只是一个精度,我放的第一个代码运行良好,但我只得到一个值放在受autocompletion影响的输入中。

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我找到了我正在寻找的解决方案。对不起,我应该在发帖前努力。

这是我的解决方案:

try
{
    $bdd = new PDO('mysql:host=localhost;dbname=SuiviCollectesLPR;charset=utf8', 'root', '');
    array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e)
{
    die('Erreur: ' . $e->getMessage());
}

$term = $_GET['term'];

$requete = $bdd->prepare('SELECT * FROM villes WHERE ville_nom LIKE :term ORDER BY ville_population_2012 DESC LIMIT 15'); // j'effectue ma requête SQL grâce au mot-clé LIKE
$requete->execute(array('term' => '%'.$term.'%'));

while ($donnee = $requete->fetch(PDO::FETCH_ASSOC)) {
$return_arr[] = array(
    'label'=>$donnee['ville_nom'],
    'dpt'=>$donnee['ville_departement']);
}
//array_push($return_arr,$row_array);

echo json_encode($return_arr); //Conversion en Json

JS:

<script type="text/javascript">
$("#rechercheVilleChargement").autocomplete({
    source : 'http://localhost:8080/SuiviCollectes/MODEL/autocomplete.php',
    select: function (event, ui) {
        $("#rechercheVilleChargement").val(ui.item.label); // display the selected text
        $("#rechercheVilleChargementDPT").val(ui.item.dpt); // display the selected text
    }
});

无论如何,谢谢你。