开发者

File upload with jquery form plugin

开发者 https://www.devze.com 2023-04-01 00:23 出处:网络
i have a form with input type=\"file\". it submits using ajax (plugin jquery form). Server returns json response. There are html tags in json data:

i have a form with input type="file". it submits using ajax (plugin jquery form). Server returns json response. There are html tags in json data:

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

but when plugin gets this response it transferred in

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

it is not correnct json. How can i fix it? If there is no input type="file" element in form, all works fine.

Here is JS

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

Here is PHP

$a = array(
    'logs' => '<span>vfdvf</span>', 
    'error开发者_运维技巧s' => '<span></span>',
);
exit(json_encode($a));


You cannot submit a file via ajax, Html 5 has much better file upload capabilities. But in older browsers its not possible. Not sure if thats exactly what is breaking your json, but your end goal is unachievable.


maby you can try json dataType.

Try

$('#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);
}});


Helps

json_encode($a, JSON_HEX_TAG)
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号