Это с помощью simplejson
import simplejson
def _to_json(python_object) :
if isinstance(python_object, tuple) :
python_object = {'__class__': 'tuple',
'__value__': list(python_object)}
else :
raise TypeError(repr(python_object) + ' is not JSON serializable')
return python_object
def _from_json(json_object):
if json_object['__class__'] == 'tuple':
return tuple(json_object['__value__'])
return json_object
jsn = simplejson.dumps((1,2,3),
default=_to_json,
tuple_as_array=False)
tpl = simplejson.loads(jsn, object_hook=_from_json)
Вы используете $this->input->post('pid')
, тогда вы должны использовать POST в ajax.
изменить
1: type: "GET", to type: "POST",
2: data: ({pid: pid}), to data: {pid: pid},
Проблема в том, что ваша страница перенаправляет все, что возвращается из первого запроса. пожалуйста, попробуйте заменить location.href = base_url+"index.php/product/displayprodt";
на console.log(response);
или alert(response);
Я думаю, вам нужно создать контроллер для управления ajax-данными. Я приведу пример:
Контроллер
public function displayprodt()
{
$pid = $this->input->post('pid',true);
$data=array(
'error' =>false,
'title' => 'Edit Product',
'result' => $this->ProductModel->displayprodt($pid),
);
header('Content-Type: application/json');
echo json_encode($data ,JSON_PRETTY_PRINT);
}
Модель [ 115]
public function displayprodt($pid){
$this->db->select("*");
$this->db->from("todaysdeal_products");
$this->db->where("product_id",$pid);
$query = $this->db->get();
return $query->result();
}
Jquery
$('.edit-pdt').click(function(){
var base_url = $("#base_url").val();
var pid = $(this).attr("data-pid");
alert(pid);
$.ajax({
type: "POST",
url: base_url+"index.php/Api/displayprodt",
data: ({pid: pid}),
dataType: "JSON",
success: function(response) {
location.href = base_url+"index.php/product/displayprodt"; // or any url you want redirect.
}
});
});
Надеюсь, вы найдете решение: ')