0

これは、オートコンプリートを使用するための私のコードであり、たとえば aci.php などの単一のファイルを使用すると正しく機能します。(正常に動作)

<?php
include_once('AFactory.class.php');
$db=new AFactory();
$db->getDBO();
if(isset($_POST['queryString'])) 
{
        $sql = "SELECT `name` FROM `liste_kala` WHERE `name` LIKE '%{$_POST['queryString']}%' LIMIT 0 , 30";
        $result=$db->setQuery($sql);
        $query=$db->setQuery($sql);
        $result=$db->loadAssoc($query); 
        // echo '<pre>';print_r($result);echo '</pre>';
        if($result) 
        {
            foreach ($result as $value) echo '<li onClick="fill(\''.$value['name'].'\');">'.$value['name'].'</li>';
        } 
}
?>

しかし、そのコードをaction.phpファイルに貼り付けて、アクションのポストメソッドを確認できますが、このようには機能しません:JQUERYメソッド:

function lookup(inputString) {
    if(inputString.length == 0) {
        // Hide the suggestion box.
        $('#suggestions').hide();
    } else {
        $.post("aci.php", {queryString: ""+inputString+"" , postaction:'autocomplete' }, function(data){
            if(data.length >0) {
                $('#suggestions').show();
                $('#autoSuggestionsList').html(data);
            }
        });
    }
}

ACTION.PHP

<?php
include_once('AFactory.class.php');
$db=new AFactory();
$db->getDBO();
$action=$_POST['queryString'];
switch ($action)
{
    case 'autocomplete':
        if(isset($_POST['queryString'])) 
        {
                $sql = "SELECT `name` FROM `liste_kala` WHERE `name` LIKE '%{$_POST['queryString']}%' LIMIT 0 , 30";
                $result=$db->setQuery($sql);
                $query=$db->setQuery($sql);
                $result=$db->loadAssoc($query); 
                // echo '<pre>';print_r($result);echo '</pre>';
                if($result) 
                {
                    foreach ($result as $value) echo '<li onClick="fill(\''.$value['name'].'\');">'.$value['name'].'</li>';
                } 
        }
            break;

}
?>
4

1 に答える 1

0
$action=$_POST['queryString'];

次のようにする必要があります。

$action=$_POST['postaction'];
于 2012-10-08T17:06:21.293 に答える