0

input type="file"のフォームがあります。ajax(プラグインjqueryフォーム)を使用して送信します。サーバーはjson応答を返します。jsonデータにはhtmlタグがあります:

{"logs":"<span>vfdvf<\/span>","errors":"<span><\/span>"}

しかし、プラグインがこの応答を受け取ると、それは転送されます

{"logs":"<span>vfdvf&lt;\/span&gt;","errors":"<span>&lt;\/span&gt;"}</span></span>

正しいjsonではありません。どうすれば修正できますか?フォームにinputtype= "file"要素がない場合は、すべて正常に機能します。

これがJSです

$('#edit_ext_table_form').ajaxForm({
    dataType: 'html',
    success: function(responseText) {
        console.log(responseText);
    },
    error: function(request) {
        var responseText=request.responseText;
        console.log(responseText);
    }
}

これがPHPです

$a = array(
    'logs' => '<span>vfdvf</span>', 
    'errors' => '<span></span>',
);
exit(json_encode($a));
4

3 に答える 3

1

ajax経由でファイルを送信することはできません。HTML5にははるかに優れたファイルアップロード機能があります。しかし、古いブラウザではそれは不可能です。それがあなたのjsonを壊しているのかどうかは正確にはわかりませんが、あなたの最終目標は達成できません。

于 2011-09-01T07:42:07.250 に答える
1

mabyjsondataTypeを試すことができます

試す

$('#edit_ext_table_form').ajaxForm({
dataType: 'json',
success: function(result) {
    console.log(result.logs);
    console.log(result.errors);
},
failure: function(result) {
    console.log(result.logs);
    console.log(result.errors);
}});
于 2011-09-01T07:48:31.767 に答える
1

ヘルプ

json_encode($a, JSON_HEX_TAG)
于 2011-09-03T08:15:27.943 に答える