2015-06-24 2 views
0

Нужна помощь здесь, я искал связанные с этим проблемы, но ничего не ответит на мою проблему. Хорошо, так вот, как это происходитКак извлечь часть ответа AJAX из PHP

У меня есть простая функция поиска, которая просматривает мою базу данных, и я использовал ajax для передачи данных и ответа, и мне это удается, но моя проблема в том, что я не могу кажется, показывают ответ так, как я хотел.

Вот мой Ajax

$.ajax({ 
    url: url, /// defined url 
    type: type, ///defined type 
    data: data, ///defined data 
    success: function(response){ 
    //here I want to display something like 
     $('#display').html(the name of the employee); 
    } 
}); 

Вот ответ Аякса

{ 
    "employee": [{ 
    "badgeno": "123    ", 
    "name": "John G. Doe", 
    "success": true 
}] 
} 
{ 
    "employee": [{ 
    "badgeno": "456    ", 
    "name": "Jane G. Doe", 
    "success": true 
} 

Я хочу, чтобы получить имя сотрудника там и отобразить его на моей странице. Как я собираюсь это сделать?

Заранее спасибо. Я еще новичок BTW

Вот PHP

$getEmp = $this->Employee_model->search_emp($employee); 
    $count = count($getEmp); 

    if($getEmp){ 
     for ($i=0; $i < $count; $i++) { 
      $data['employee'][$i] = array(
       'badgeno' => $getEmp[$i]->BADGENO, 
       'name' => $getEmp[$i]->NAME, 
       'success' => true 
      ); 
      echo json_encode($data); 
     } 
     print_r($data); 

     //$this->load->view('admin/home', $data); 
    } 
+0

Это действительно 'ajax' ответ. Я думаю, что ему не хватает некоторых фигурных скобок ... или я не знаю ... Может быть, вы можете немного изменить его. – Gideon

ответ

1

Try:

employee_name= data.employee[0].name; 
$('#display').html(employee_name); 

Ссылка на fiffle: https://jsfiddle.net/fcz53htw/ Если у вас есть более чем одно имя, сначала добавьте их в массив , а затем распечатать затем json_encode массива. Теперь его не будет работать, потому что вы печатаете дважды. Попробуйте изменить PHP для этого:

$getEmp = $this->Employee_model->search_emp($employee); 
$count = count($getEmp); 

if($getEmp){ 
    for ($i=0; $i < $count; $i++) { 
     $data['employee'][$i] = array(
      'badgeno' => $getEmp[$i]->BADGENO, 
      'name' => $getEmp[$i]->NAME, 
      'success' => true 
     ); 
     //echo json_encode($data); 
    } 
    echo json_encode($data); 

    //$this->load->view('admin/home', $data); 
} 
+0

Извините, ответ не определен –

+0

Проверить данные.employee [0] .name; – BenB

+0

еще не определено –

0

На PHP вы пишите результаты дважды удалить printr использовать только json_encode

Смежные вопросы