2016-09-21 4 views
1

У меня есть следующая таблица:Вывод Результаты Подготовленные заявления

| id | name | age | 
|----|-------|-----| 
| 1 | Peter | 23 | 
| 2 | Amie | 34 | 
| 3 | Eddy | 45 | 
| 4 | Peter | 56 | 
| 5 | Eddy | 67 | 

Теперь я хочу, чтобы получить возраст всех пользователей с именем Peter.

JS:

function getAge() { 
    $.ajax({ 
     type : "POST", 
     url : "backend.php", 
     data : { 
      q : "user", 
      name : 'Peter' 
     }, 
     success : function(data) { 
      console.log(data) 
      if (data.length > 0) { 

      } else { 
       console.log("empty") 
      } 
     }, 
     error : function(jqXHR, status, error) { 
      console.log(status, error); 
     } 
    }); 
} 

PHP:

if (isset ($_POST)) { 
    if ($_POST ['q'] == "user") { 
     $name = $_POST ["name"]; 

     $stmt = $link->prepare ("SELECT age FROM tab1 WHERE name= ?"); 

     $stmt->bind_param ("s", $name); 
     $stmt->execute(); 
     $stmt->store_result(); 

     if ($stmt->num_rows >= 1) { 
      echo "Yes"; // only this Yes is being returned 
      $arr = array(); 
      while ($stmt->fetch()) { 
       $arr [] = $name; 
      } 
      return $arr; 
     } else { 
      echo "0 records found"; 
     } 

     $link->close(); 
} 

Вместо массива с 23 и 56, я только получить Yes.

Так как я могу получить массив с возрастом?

+1

вам нужно 'Эхо $ обр;' вместо 'вернуть $ обр;', потому что вы используете Аякс – developer

+0

Вы вторите содержимое '$ arr' в формате, который вы определяете (возможно, используя json, но это действительно зависит от вас), а в скрипте js обрабатываются полученные данные и отображаются так, как вы этого хотите. – Shadow

+1

'echo json_encode ($ arr);' вместо 'return $ arr;' будет работать, я думаю (если вы хотите, чтобы JSON вернулся в браузер) – ADyson

ответ

1

просто добавьте это в свою функцию php. это означает, что вы хотите вернуть JSON в эту страницу

header('Content-Type: application/json'); 

изменения вашего возвращения $ обр эхо json_encode ($ обр); для преобразования вашего массива в объект json также удалите эхо «Да»;

echo json_encode($arr); 

ваша функция PHP будет выглядеть следующим образом

if (isset ($_POST)) { 
    if ($_POST ['q'] == "user") { 
     header('Content-Type: application/json'); 
     $name = $_POST ["name"]; 

     $stmt = $link->prepare ("SELECT age FROM tab1 WHERE name= ?"); 

     $stmt->bind_param ("s", $name); 
     $stmt->execute(); 
     $stmt->store_result(); 

     if ($stmt->num_rows >= 1) { 
      $arr = array(); 
      while ($stmt->fetch()) { 
       $arr [] = $name; 
      } 
      echo json_encode($arr); 
     } else { 
      echo "0 records found"; 
     } 

     $link->close(); 
    } 
} 
Смежные вопросы