为什么变量没有通过?

时间:2013-03-26 22:06:20

标签: mysql ajax json variables jquery-select2

我正在使用select2插件来填充mysql中的标签。 所以我将q变量传递给getdada.php。但问题是

  1. q变量没有被传递给getdata.php。我想传递这个变量,这样我就可以获得与之相关的数据(可能是我没有将q变量放在适当的位置。)< / p>

    2.如果我不使用q变量,则只返回最后一个或第一个变量。我想将所有结果填充为标签数据(可能错误在getdata.php中的jsoncode格式中)

  2. Plz帮助。

            $("#e8").select2({
    
    
            placeholder: "Search for another Concept",
            minimumInputLength: 1,
            multiple: true,
            ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
                url: "getdata.php",
                dataType: 'json',
                data: function (term, page) {
                    return {
                        q: term, // search term
    
                          page: page
    
                    };
    
                },
                results: function (data, page) {
                    return { results: data};
    
                }
            }
        });
    

    这里是getdata.php

    $sql=mysqli_query($db3,"SELECT * FROM o4_tags" );
    
    while($row=mysqli_fetch_array($sql)){
        $tags=$row['tag_name'];
        $id=$row['id'];
    
            $myArray = array(
                array( "id" => "$id", "text" => "$tags" ),
            );
    
    
    }
    
    echo json_encode($myArray);
    

1 个答案:

答案 0 :(得分:1)

首先,您的PHP脚本似乎出现了问题。您当前正在为检索到的每一行创建一个新的$ myArray。实际上只有最后一个数组输出为JSON。此代码修复了该问题:

$sql=mysqli_query($db3,"SELECT * FROM o4_tags" );
$myArray=array();

while($row=mysqli_fetch_array($sql)){
    $tags=$row['tag_name'];
    $id=$row['id'];

    $myArray[]=array( "id" => "$id", "text" => "$tags" );
}
echo json_encode($myArray);

我不确定为什么你在PHP脚本中没有看到搜索词,但是再一次,我没有在PHP中看到任何实际处理搜索词的代码。你试过转储$ _REQUEST吗?