0

これは単純に思えますが、私はこれに慣れていないので、チュートリアルや例を何時間も読んだ後でも、実行することができません。PHPでクエリを実行し、文字列の配列を作成して、その配列をデータを呼び出したjQuery ajax()に返します。戻り配列は、データベースに格納されている文字列であり、次のようになります。

citiesWithBoroughs = [
    "Dallas, Dallas County, Texas, United States",
    "Fort Worth, Tarrant County, Texas, United States",
    "El Paso, El Paso County, Texas, United States"
];

クエリと配列の作成コードは次のとおりです。クエリはMySQLWorkbenchで機能し、必要なデータを返します。テスト中のエラーの原因を減らすために、以下の国と州をハードコーディングしました。制御されたテストが機能するようになったら、それらを「mysql_real_escape_string($ countryAbbreviation)」などに置き換えます。

$return_arr=array();

$fetch = mysql_query("SELECT DISTINCT cityWithBoroughsGeonamed FROM places.boroughs
    WHERE countryAbbreviation='US'
    AND stateProvinceAbbreviation='NY'
    ") or die(mysql_error());
while ($row = mysql_fetch_array($fetch)){
    $return_arr[]=$row['cityWithBoroughsGeonamed'];
}
echo $return_arr;

現在、Firebugはキー/値データがPHPサーバーに送られると言っていますが、空の配列が返されます。私はいくつかのことを試しましたが、何も得られないか、空の配列を取得しました-多くの試行の後。

JavaScript側では、データを要求し、返された配列を取得するajax関数を次に示します。

citiesWithBoroughs = function (request, response){
$.ajax({
    url: "getCitiesWithBoroughs.php",
    data: {stateProvinceAbbreviation: $("#hiddenState").val(),
        countryAbbreviation: $('input[name=country]:checked').val()},
    type: "POST",
    dataType: "text",
    success: function (data){
        response;
    }
});

これを正しくするために何を変更する必要がありますか?コードについて具体的に教えてください。私はこれにかなり慣れていません。

4

1 に答える 1

0

echoは文字列を出力します。$ return_arrは文字列の配列であり、echo $return_arr;を出力するだけArray()です。echo json_encode($return_arr);クライアント側のスクリプトの成功コールバックでjsonエンコードされた文字列を使用して処理することをお勧めします。

于 2012-11-17T01:59:41.400 に答える