0

HTML 部分:

  <form method="post" id="src-form" name="src-form" action="<?php echo $SCRIPT_NAME; ?>">

          <input id="src-location" name="src-location" autocomplete="off" />

          <input type="submit" name="src_submit" id="src_submit" value="Search" />

        </form>

    <script>

      $(document).ready(function() {

        $("input#src-location").autocomplete({

     source: "autosuggest-server.php"
        });

       $('input#src-location').focus(function()

        {       

                $(this).val('');


        });  

    });  

    </script>

PHP 部分:

<?php

include("db.php");

$return_arr = array();


$fetch = mysql_query("SELECT * FROM city INNER JOIN country ON country.countryid = city.countryid where cityname like '%" . mysql_real_escape_string($_GET['term']) . "%' ORDER BY cityname ASC limit 0,20"); 

    while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {

        $row_array['id'] = $row['id'];

        $row_array['value'] = $row['cityname'].", ".$row['countryname'];

        array_push($return_arr,$row_array);
    }

echo json_encode($return_arr);
?>

JS: 通常の jquery autosuggest スクリプト

私が追加したPHPファイルで:

$row_array['value'] = $row['cityname'].", ".$row['countryname_'.$lang].",".$row['cityid'];

何かを入力すると、期待どおりにシティ ID がエコーされます。cityid を実際に表示された値から分離し、非表示の入力テキスト フィールドに入力する方法はありますか?

私がやりたいのは、cityid で検索することですが、検索フィールドに表示したくありません。

他の解決策はありますか?

どうもありがとう。

4

1 に答える 1

2

レスポンスを JSON オブジェクトとして返すことをお勧めします。そのため、php では次のようにします。

$dataArray = ... //get city data where key=cityId, value=1, key=cityName, value=London etc.
echo json_encode($dataArray);

これは次のようなものを返します:

{'cityId':'1','cityName':'London'}

javascript で、次を追加して、json を受け入れる ajax リクエストを定義します。

dataType: 'json'

応答メッセージを受け取ったら、次のことができます。

$('#myHiddenField').val(msg.cityId);
var cityName = msg.cityName;
//do whatever you like with cityName
于 2012-07-15T13:49:04.780 に答える