2017-03-28 8 views
2

こんにちは、私はPHPでjquery ajax関数を使用しています。ここに私の問題があります。 最初に私はデータ型を使用しています: "html"私の問題はPHP変数が返されないことです。jQuery AJAXデータ型を使用して

JS

$.ajax({ 
type: "POST", 
dataType: "html", 
url: ajaxurl, 
data:dataajax, 
success:function(data) { 
    var $data = $(data); 
    $(".list").append($data); 
}, 
error : function(jqXHR, textStatus, errorThrown){ 
}}); 

PHP

echo "<div>".$_POST['value']."</div>"; 

私はそれが働いているこのしかしように使用している場合、私はhtmlタグAjaxのリターンは何も削除しないとき。

壊れPHP

echo myfunction($_POST['value']); 
echo $_POST['value']; 

は、どのように私はこの問題を解決することができますか私はjqueryのAJAXとリターン$出力を使用することができますか?

+0

「myfunction()」の機能を表示してください。 –

答えて

2

問題は、successコールバック関数にあります。

dataはhtml文字列であり、jqueryでラップする必要はありません。

これを使用してください。

$.ajax({ 
type: "POST", 
dataType: "html", 
url: ajaxurl, 
data:dataajax, 
success:function(data) { 

    $(".list").append(data); 
}, 
error : function(jqXHR, textStatus, errorThrown){ 
}}); 
+0

私の間違いは残念です。ありがとうございました! – user2293004

0

AjaxはリクエストとレスポンスにJSONデータを使用します。あなたがしたいことは、JSON変数を返して、javascriptレスポンス関数が要素に正しくアクセスできるようにすることです。

幸いなことに、phpはそのことを行うように設計されています。

$ajaxData = $_POST['value']; 
echo json_encode(array('response' => $ajaxData)); 

このデータで実際に何をしようとしていますか?あなたがする必要があるのは、javascriptでwrap()のような関数を使うことができるdivにいくつかのHTMLをラップして、実際にサーバーにajaxを送信する必要はありません。

いずれにしても、データのニーズを考慮し、送信する実際の変数が存在するように、ajaxリクエストでjsonオブジェクトを送信する必要があります。 htmlマークアップはおそらくPHPコードにとって有用ではありません。

+0

ajaxがJSONを使用していないことが間違っています。それはjsonを使用することができますが、OPはHTMLバックを待っているajax呼び出しを指定しています。 –

+0

あなたは正しいです。私の間違い。いずれにしても、私たちはmyFunction()が実際にここで助けてくれるのを見る必要があると思うと思います – MichaelBadgett

関連する問題