-4

こんにちは、PHP から応答を取得するために多くの検索を行い、その応答が問題ない場合は何かを実行し、偽の場合は別のことを実行します (!!!!!!!! その PHP から他の出力がある場合 !!!!!!)これは私のインデックスファイルです

<head>
<script src="jquery-1.7.2.js" type="text/javascript"></script>
<script src="js.js" type="text/javascript"></script>
</head>
<body>
<p> click </p>
<input type="text" id="who">
<br>
<input type="text" id="why">
<div id="bg" align="center">
</div>
</body>

これは私のJSファイルです

$(document).ready(function(){
    $('p').click(function(){
        var who = $('input#who').val();
        var why = $('input#why').val();     
        $.post('file.php',{who:who,why:why},function(data) {
    if(data.success){
         alert(data.message);
    }
    else{ alert('ERROR:' + data.message);
    }
});




    });
});

これは私のfile.phpです

<?php
$response = array('success' => 'true', 
    'code' => "jQuery('#bg').html('\"Javascript\", \"json\", \"PHP\"');");
echo json_encode($response);
?>

私の質問: 1-なぜこれが機能しないのか、アラートが表示されます(エラー:未定義) 2-このような他の出力がある場合に、そのphpファイルから結果を取得する方法:

<?php
echo "1";
echo "2";
echo "3";
and now echo that json
?>

ありがとう :(

4

1 に答える 1

3

なぜこれが機能しないのか、警告が表示されます (エラー: 未定義)

応答が JSON であることを jQuery に伝える必要があります。[docs]'json'に第 4 パラメーターとして渡すか、PHP で正しい応答ヘッダーを設定することで、これを行うことができます。$.post

header('Content-Type: application/json');

jQuery.parseJSON または、 [docs]を使用して自分で応答を解析できます。

このような他の出力があるときに、そのphpファイルから結果を取得する方法

簡単な方法はありません。応答はもはや有効な JSON ではないため、何らかの方法で自分で解析する必要があります。これを避けて、すべてを JSON として返す必要があります。

于 2012-10-31T05:11:56.893 に答える