如何在ajax成功后在td中显示图像

时间:2014-02-23 11:40:21

标签: javascript php jquery html ajax

我希望在ajax成功之后显示特定td中的图像,但是它没有显示图像它没有工作任何人指导我是我出错了下面是我的代码

AJAX:

<script>
    $(document).ready(function() {
        $('.edit1').on('change', function() {
            arr = $(this).attr('class').split(" ");
            var clientid = document.getElementById("client").value;
            account_id = document.getElementById("account_id").value;
            $(this).parent().next().find('input:checkbox').attr("checked", true);
            $.ajax({
                type: "POST",
                url: "clientnetworkpricelist/routestatusupdate.php",
                data: "value=" + $(this).val() + "&rowid=" + arr[2] + "&field=" + arr[1] + "&clientid=" + clientid + "&account_id=" + account_id,
                success: function(result) {
                    data = jQuery.parseJSON(result); //added line
                    var obj = data;
                    $('#CPH_GridView1_Status' + arr[2]).empty();
                    $('#CPH_GridView1_Status' + arr[2]).append(data.status);
                    $('.ajax').html($(this).val());
                    $('.ajax').removeClass('ajax');
                }
            });
        });
    });
</script>

routestatusupdate.php

{

/** 
some function for display the result

**/

$result=array();
$result['status']='<img  src="image/' . $status . 'f.png" />';
$result['seleniumrouteupdate']=$seleniumrouteupdaterow;
$result['routeupdate']=$routeupdate;
echo json_encode($result);
}

我的routestatusupdate.php out看起来像

{"status":"<img  src=\"image\/Increasef.png\" \/>","seleniumrouteupdate":"1","routeupdate":"100"}{"status":"<img  src=\"image\/Decreasef.png\" \/>","seleniumrouteupdate":"1","routeupdate":"100"}

1 个答案:

答案 0 :(得分:0)

您不需要此行,因为数据已经是JSON格式:

data = jQuery.parseJSON(result); //added line

通过删除它,您还需要更新您的var:

var obj = result;

第二件事,你的JSON格式错误..它应该像这样输出:

[{"status":"<img  src=\"image\/Increasef.png\" \/>","seleniumrouteupdate":"1","routeupdate":"100"},{"status":"<img  src=\"image\/Decreasef.png\" \/>","seleniumrouteupdate":"1","routeupdate":"100"}]

你可能有回声json_encode($ result);在两个地方,你需要将它们组合在一个响应数组中并回显json_encode($ results);

以下是如何执行此操作的示例(PHP):

function something($status, $seleniumrouteupdaterow,$routeupdate) {
   $result=array();
   $result['status']='<img  src="image/' . $status . 'f.png" />';
   $result['seleniumrouteupdate']=$seleniumrouteupdaterow;
   $result['routeupdate']=$routeupdate;
   return $result;
}

// ....PHP code
$json = array();
$json[] = something($status, $seleniumrouteupdaterow,$routeupdate);
// ... some other code
$json[] = something($status, $seleniumrouteupdaterow,$routeupdate);
echo json_encode($json);

最后,您还需要更新此行:

$('#CPH_GridView1_Status' + arr[2]).append(data.status);

由于data.status是一个数组,你需要定位正确的元素(第一个或第二个):

$('#CPH_GridView1_Status' + arr[2]).append(data.status[0]);

这将附加您的第一条状态消息..