0

非常に単純です。準備済みステートメントを使用してデータを選択し、それを json_encode 形式で返します。

問題:返されたデータでいっぱいの JSON 文字列を受け取る代わりに、次のようなものが得られます。

[true, true, true, true]

私の推測では、すべての値が設定されているかどうかをチェックしてから、値が設定されているかどうかをブール形式で返すだけです。

$stmt = $connection->prepare("SELECT * FROM details WHERE age = ?");
$stmt->bind_param('i', $age);
$stmt->execute();
$json = array();
while($row = $stmt->fetch()){
$json[] = $row;
}

echo json_encode($json);

これは私が使用している AJAX です。

$(document).ready(
    function () {
        $('#call_back_btn').click(function() {
            $.post("process.php", {
                name:   $('#name').val(),
                age:    $('#age').val(),
                value:  $('#value').val(),
                task:   "submit_prepared"
            }, 
            function(data) {
                alert(data);
            })
        })
    });

データが JSON 文字列に返されるようにするにはどうすればよいですか? ありがとうございました。

4

2 に答える 2

1

配列が正しいことを確認するためだけに、php から $json を出力してみてください。次に、php で json_encode($json) 変数を ajax なしで再度出力します。私は通常、クエリをハード コードして、ブラウザーから直接実行します。このようにして、php によって正しいデータが生成されていることを確認します。

また、$.ajax 関数を使用してみてください。これにより、より多くの制御が可能になります。

$.ajax({
    url: 'process.php',
    type: 'POST',
    dataType: 'JSON',
    data: {YOUR DATA GOES HERE},
    success: function(data){
            alert(data);
     }
});
于 2013-10-13T17:57:11.853 に答える