私は最終的に動作するように私のサーバーからJSONオブジェクトにHTMLを戻すようにしています。付属のphpファイルからJSON形式のHTMLを返します
ファイルが含まれているHTMLを返信できるようにしたいと思いますが、どうすればうまくいかないのですか...可能ですか?
<head>
<script src="ajax.js"></script>
</head>
<body>
<div class="main-content">
<p>Some content to be replaced</p>
</div>
</body>
次のように私のJavaScriptのAJAX呼び出しは次のとおりです:
$.ajax({
type: 'POST',
dataType: 'json',
url: 'http://example.com/process.php',
data: formData,
success: function(rtnData) {
$('.main-content').replaceWith(rtnData['html']); // Redraw content
},
error: function(rtnError) {
console.log('there was a problem');
}
});
マイprocess.phpファイルはここにある:
<?php
$returnVal['html'] = include 'test.php';
echo json_encode($returnVal);
そして
私のindex.htmlには、このようになります最後に、私のtest.phpファイルは:
ですこれが実行されると、rtnData['html']
に何も返されず、コンソールログに「問題がありました」と表示されます。
私はfile_get_contents('test.php');
に$returnVal['html'] = include 'test.php';
を変更する場合は、HTMLを返しますが、PHPが実行されずにテキストとして返されるので、私のHTMLは、The simple sum 5 + 4 = <?php echo 5 + 4;?>
代わりのThe simple sum 5 + 4 = 9
に置き換えられます。
達成しようとしていることはありますか? test.phpを外部ファイルとして残す必要があります。残念ながらそれを変更することはできません。
ありがとう、万人のu_muider ....私はそれを試して、できるだけ早くあなたの答えを受け入れるでしょう。 JSONではなくHTMLを返すことに関して、私がそれを行った場合、エラーを返す最良の方法は何ですか?私はちょうどいくつかのHTMLと一緒に500の内部サーバーのエラーヘッダーを返すか、それはちょっとしたハックですか? – Damian
なぜでしょうか?500ステータスの場合、 'error'ハンドラは'成功 'ハンドラではなくajaxで呼び出されます。 –
もう一度お返事ありがとうございます。 – Damian