0

$google['cities']Ajax は、 myが として呼び出されたときに認識したくありませんdata.cities

出力は次のとおり12 undefined undefinedです。

$google['number']=12を削除し、データベース配列を と同じように定義すると、うまく機能します (出力はデータベース レコードです) $google[]=$row

何か案は?

PHP:

<?php

$con = mysql_connect("localhost","root","");

if(!$con) {

    die("Connection Error: ".mysql_error());

}

mysql_select_db("avtost", $con);

$pasteta = $_POST["white"];

$places = mysql_query("SELECT sDo FROM bstop WHERE sOd='$pasteta'");

mysql_close($con);

$google=array();

while ($row=mysql_fetch_array($places)) {
    $google["cities"]=$row;
}

$google['number']=12;

if (mysql_num_rows($places)>0) {

    echo json_encode($google);
} else { echo 'Ni rezultatov';}



?>

JQuery:

<script type="text/javascript">

$(document).ready(function(){

  $('#submit').click(function(){

    var white = $('#white').val();

    $.ajax({

    type:"POST",
    url:"page.php",
    dataType:'json',
    data:{white:white},
    success: function(data){

        var result='';
        $.each(data.cities, function(i,e) {
        result += '<div>'+e.sDo+'</div>';
        });
        $("#res").append(data.number);
        $("#res").append(result);

    }


    });


  });  

});

</script>
4

3 に答える 3

3

いくつかのヒント:

1)コードを保護するためにプリペアドステートメントを使用する必要があります(mysqliprepared)。これにより、次のようなものが得られます。

// connect to database and check it
// ...
$stmt = $mysqli->prepare('SELECT sDo FROM bstop WHERE sOd=?');
$stmt->bind_param('s',$pasteta);
$stmt->bind_result($sDo);
$stmt->execute();
while($stmt->fetch())
    $google['cities'][] = $sDo;
$google['number'] = 12;
$stmt->close();
$mysqli->close();
// ...

2)変数、テーブル、および列の名前を改善します。彼らは少し混乱しています。

3)'Ni rezultatov'を返す代わりに、JSONを返す必要があります。など{"status":"FAILED"}、その後{"status":"OK", ... }、成功したリクエストに対して戻ります。

于 2012-08-02T00:16:07.970 に答える
3

の行をループするたびにcitiesキーを上書きしています。あなたが使用することができます:$google$places

while ($row=mysql_fetch_array($places)) {
    $google[]=$row;
}

$google[]=12;

数値キーを取得する場合は、配列の最後の値の値を取得するか、数値を別の変数として渡すだけです$number

于 2012-08-01T23:56:38.610 に答える
1

私はそれを自分で解決しました:

PHP:

while($row=mysql_fetch_array($places)){

$google['cities'][]=$row;

}

$google['number']=12;

echo json_encode($google);
于 2012-08-02T00:12:33.273 に答える