私はデータをphpスクリプトに送信するjquery-ajax関数を持っています。問題は戻り値にあり、単一の値ではなくページ全体を返します。
あなたの時間と助けをありがとう。
$("#ajaxBtn").click(function(){
var inputText = $("#testText").val();
$.ajax({ type: "POST",
url: "index.php",
data: "testAjax="+inputText,
dataType: "html",
success: function(html){
alert(html);
}
});
});
それがどのように機能するかです。 AJAX経由でindex.php
をリクエストしているので、index.php
の内容が何であっても取得できます。
特定の値が必要な場合は、その値のみを出力する新しいPHP=ページを作成し、代わりにそのURLのコンテンツを要求します。
最初にこれを_index.php
_に持っていると?
_<?php
if (isset($_POST["testAjax"])) {
echo $_POST["testAjax"];
}
?>
_
このスクリプトがさらにテキストを出力している場合は、もちろんこれもAjax呼び出しによって受信されます。エコーの後にexit()
を配置して、スクリプトがそれ以上処理されないようにすることができます。
_if (isset($_POST["testAjax"])) {
echo $_POST["testAjax"];
exit();
}
_
また、返される値は明らかにHTMLではないため、_dataType: 'text'
_を使用してください。
または、他の人が示唆しているように、Ajaxリクエストの処理を担当する新しいページを作成します。受け取った値を出力するだけではない場合(つまり、より複雑な操作)は、とにかくこれを行う必要があります。
ソフィア、あなたの場合、あなたはあなたのデータをphpファイルに送るべきではありません、それはウェブブラウザによって見られた場合、ウェブサイトのページを表示します。返してほしいデータだけを返すphpファイルに情報を送信する必要があります。
したがって、「index.php」の代わりに、「my-ajax-script.php」のような名前のファイルを作成します。そのファイルには、データベースとphp関数ファイルに接続するために必要な「include()」ファイルが含まれている必要があります(つまり、POSTデータをサニタイズするため)。次に、ファイルには処理するコードが必要ですPOSTデータ、そしていくつかのhtmlタグで完全なデータをエコー出力します。このデータは既存のDOM(htmlマークアップ)に挿入されます。
私の場合、同じ問題を抱えている人は誰でも
bootstrap phpファイルでrequire
の代わりにrequire_once
を使用して、システム全体でページ全体が2回再レンダリングされるのを防ぎます。