0

私はまだ朝から AJAX に取り組んでいるので、一部の機能が期待どおりに機能しないのはそのせいかもしれません。忘れてしまいましょう。要約すると、私の問題は JSON 経由で HTML を渡すことと一致しています。PHP コードの例:

$list = "<strong>This is test</strong>";
$response = array('success'=>true, 'src' => $list);
echo json_encode($response); 

基本的に、HTML を AJAX に渡すコードの主要部分です。それでは、AJAX コードの一部を見てみましょう。

            success: function(output)
            {
                alert(output);
                json = $(output).find(".content").text();
                var data = $.parseJSON(json);
                if(data.success == true)
                {
                   obj_a.parents(".row").append(data.src);
                   obj_a.attr("id", "rollBack");
                   obj_a.text("Roll back");
                }
            },

この部分で私が何をしているのかと尋ねる人もいます。

json = $(output).find(".content").text();

答えは: ".content" ボックスから json 文字列を取得するので、変数 "json:

{"success":true,"src":"1. dsfasdfasdffbcvbcvb<\/span>Edytuj<\/span> <\/a>Usu \u0144<\/span><\/div>2. vbnvbnm454t<\/span>Edytuj<\/span><\/a>Usu\u0144<\/span><\/div>3. ndfhgndgfhndfhgndfhd<\/span>Edytuj<\/span><\/a>Usu\u0144<\/span><\/div><\/div>"}

問題は、この HTML を取得できないことです... HTML タグやスタイルなどを使用せずにテキストのみを取得します...

HTML ではなく取得する文字列: "1. dsfasdfasdffbcvbcvbEdytujUsuń2. vbnvbnm454tEdytujUsuń3. ndfhgndgfhndfhgndfhdEdytujUsuń"

上記の文字列でスマートまたはガニウスを探そうとしないでください。それはテスト文字列に過ぎないためです。

PHPコードの一部によると、私の場合、「 This is test 」ではなく「This is test」と表示されます。

私の質問を要約すると、これらの HTML タグまたは HTML コード全体を json 経由で PHP から AJAX に渡す方法です。

4

2 に答える 2

0

仕組みを誤解していると思いますjQuery.ajax()。そのことを伝えるだけでdataType: 'json'(つまり、サーバーからの JSON 出力を期待していることを意味します)、あとはすべて処理してくれます。を使用する必要はありませんjQuery.parseJSON()。このsuccess()メソッドには、サーバーの応答を表す JavaScript オブジェクトが与えられます。

        success: function(output)
        {
            // output is a JS object here:
            alert(output.success);  // true

            // ...
        },

その時点から HTML を取得するには、output.src.

于 2012-08-18T22:13:33.387 に答える
0

ajax リクエストで指定dataType: 'json'し、成功呼び出しでオブジェクト (つまり、既に解析された json) を受け取ることができます。例えば

$.ajax(url, {
    dataType: 'json',
    success: function(output)
        {
            if(output.success == true)
            {
               obj_a.parents(".row").append(output.src);
               obj_a.attr("id", "rollBack");
               obj_a.text("Roll back");
            }
        },

dataType を変更できない場合は$.parseJSON、出力時に呼び出します

 function(output)
        {
            alert(output);
            var data = $.parseJSON(output);
            if(data.success == true)
            {
               obj_a.parents(".row").append(data.src);
               obj_a.attr("id", "rollBack");
               obj_a.text("Roll back");
            }
        }, 
于 2012-08-18T22:14:01.703 に答える