как отображать изображение в td после успеха ajax

Я хочу отобразить изображение в конкретном td после успеха ajax, но он не отображает изображение, которое он не работает, кто-то подскажет мне, я ошибался ниже, это мой код

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); } 

мой метод routeestatusupdate.php выглядит так:

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

Эта строка не нужна, так как данные уже находятся в формате 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"}] 

Вероятно, у вас есть этот echo json_encode ($ result); в двух местах вам нужно объединить их в один массив ответов и echo 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]); 

Это добавит ваше первое сообщение о статусе.