почему бы $ stmt-> execute () print_r = объект в ajax - PullRequest
0 голосов
/ 02 октября 2018

Введение: Я делаю библиотеку серверных данных, используя ajax.

Ошибка: Похоже, мой print_r ($ stmt) возвращает объект.Эта первая ошибка, которую я считаю, вызывает другие мои ошибки, такие как «неперехваченная ошибка: вызов функции-члена fetch_assoc () on null»).

Кроме того, я не думаю, что print_r ($ result) показывает какие-либо подробности.

Код Ajax:

 <script type="text/javascript"> 
    $(document).on('click','.edit_btn',function (){
      var id = $(this).attr("id").match(/\d+/)[0];
      var edit_id = $('#example').DataTable().row( id ).data();
      var edit_id = edit_id[0];
      $.ajax({
        type:'POST',
        url: 'form.php',
        datatype: "json",
        data: { edit_id : edit_id },
        success: function(result) {
          //alert(edit_id);
          alert(result);
          $("#edit_id").val(edit_id);
        } //success func
      }); //ajax
    }); //end ready
    </script>

Form.php:

$conn=mysqli_connect($host,$user,$pass,$db);
$stmt = $conn->prepare("SELECT * FROM `employees` WHERE `id` = ?");
$stmt->bind_param("i", $_POST['edit_id']);
$stmt->execute();
print_r($stmt);
$result = mysqli_query($conn, $stmt);
print_r($result);

$row = $result->fetch_assoc();
echo $row;    

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Проще говоря, вы не можете использовать print_r в Ajax, поскольку это конфликтует с оператором echo в конце.Вместо этого вы должны использовать var_dump при проверке переменных.

0 голосов
/ 02 октября 2018

В файле php вы печатаете с print_r, и это дает ошибки при использовании с DT.Сначала прокомментируйте строки print_r, а во-вторых, я не вижу цикл while для вставки возвращаемых данных запроса в массив, а после этого вы должны закодировать окончательный эхо-сигнал.

Поскольку я не знаю информации от ваших сотрудников, приведем пример: Ваш запрос должен выглядеть следующим образом:

$stmt = $conn->prepare("SELECT * FROM `employees` WHERE `id` = ?");
$stmt->bind_param("i", $_POST['edit_id']);
$stmt->execute();
// here is the change part
$result = $stm->fetchAll(); // save all returned values into $result as an object
$output = ''; // declare a variable to handle the data
// loop through all returned rows from query
foreach($result as $rows) {
    $output .= '<td>'.$rows["user_name"].'</td>'
    $output .= '<td>'.$rows["user_surname"].'</td>'
    $output .= '<td>'.$rows["user_email"].'</td>'
    $output .= '<td>'.$rows["user_phone_nr"].'</td>'
    .....
    .....
    ..... // and so on with the values you want to show (i just insert into a <td> which is supposed to be part of a table declared before the loop)
}

echo $output;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...