Я хочу получать данные, используя AJAX из PHP, который запрашивает в базе данных некоторые данные.Все, что я получаю от AJAX, это NULL
.
![received from Firefox Debugger](https://i.stack.imgur.com/txpmS.png)
Когда я оповещаю результат (например, data.name), он говорит undefined
.
HTML, AJAX и jQuery находятся в index.php
, а PHP в edit.php
-.
Я использую AJAX-запрос ...
$('div[data-toggle="edit"]').click(function() {
var editid = $(this).attr('id').replace('edit','');
$.ajax({
cache: false,
type: 'GET',
url: 'edit.php',
data: editid,
dataType: 'JSON',
}).done(function(data) {
$('#mainlabel').modal('show');
$('input[name=add_name]').val(data.name);
$('input[name=add_date]').val(data.date);
$('input[name=add_image]').val(data.image);
$('input[name=add_info]').val(data.info);
}).fail(function(jqXHR, message) {
alert(message);
});
});
... дляполучать данные из этого кода PHP.
<?php
require_once('main.conf');
require_once('db.php');
$stmt = $con->prepare("SELECT * FROM datas d WHERE d.dataid = ?");
$stmt->bind_param("i", $_GET["editid"]);
$stmt->execute();
$result = $stmt->get_result();
$stmt->close();
while ($row = $result->fetch_assoc()) {
$editname = $row["name"];
$editdate = date("Y-m-d", strtotime($row["date"]));
$editimage = $row["image"];
$editinfo = $row["additionalinfo"];
}
$return[] = array("name" => $editname,
"date" => $editdate,
"image" => $editimage,
"info" => $editinfo,
"getid" => $_GET["editid"]); //only for debugging
header('Content-Type: application/json; charset=UTF-8');
echo json_encode($return);
?>
Когда я вызываю этот код вручную через edit.php?editid=547
, JSON-результат выглядит так, как должен.
0
name "Mike Minus"
date "2015-05-12"
image "employee.jpg"
info "some additional info"
getid "547"
С ожидаемой информацией яЯ хочу заполнить некоторые поля ввода.
<div class="modal-body mx-3">
<div class="form-group">
<label for="add_name" class="col-form-label">Name:</label>
<input class="form-control validate" type="text" name="add_name" value="">
</div>
<div class="form-group">
<label for="add_name" class="col-form-label">Datum:</label>
<input class="form-control" type="date" name="add_date" size="8" value="">
</div>
<div class="form-group">
<label for="add_image" class="col-form-label">Bild:</label>
<input class="form-control" type="text" name="add_image" value="">
</div>
<div class="form-group">
<label for="add_info" class="col-form-label">Zusatzinfos:</label>
<input class="form-control" type="text" name="add_info" value="">
</div>
</div>
<div class="btn btn-info btn-sm" data-toggle="edit" id="edit547">
<i class="fa fa-pencil-square-o"></i>
</div>
Я знаю, что в SO достаточно много возможных решений.Используя echo
вместо return
в коде PHP, соответствующий заголовок application/json
или другие методы.Ничто не может помочь до сих пор.