У меня есть форма, в которой пользователь должен ввести свой идентификатор бронирования и фамилию. Если эти два значения совпадают в базе данных, мне нужно вернуть соответствующие значения из базы данных.
Пока вроде все работает. Правильные значения извлекаются из базы данных. Я хотел бы показать значения внутри абзацев. Я просто не знаю, как это заархивировать. ValidateReservation вызывается после нажатия кнопки.
Вот мой код:
<p id='guest_full_name'></p>
<p id='unit_number'></p>
<p id='floor'></p>
<script>
function validateReservation(){
var reservation_id = document.getElementById("reservation_id").value;
var guest_last_name = document.getElementById("guest_last_name").value;
$.ajax({
type: 'POST',
url: 'test06.php',
// dataType: 'json',
data: {
'reservation_id': reservation_id,
'guest_last_name' : guest_last_name
},
success: function(json) {
console.info(json);
$('#reservation_id').val(json.reservation_id);
$('#guest_last_name').val(json.guest_last_name);
$('#guest_full_name').val(json.guest_full_name);
$('#unit_number').val(json.unit_number);
$('#floor').val(json.floor);
$('#key_sa').val(json.key_sa);
},
error: function(err) {
console.info(err);
} }); }
test06.php
<?php
$conn = mysqli_connect("","","","");
$reservation_id=$_POST['reservation_id'];
$guest_last_name=$_POST['guest_last_name'];
$stmt = $conn->prepare("SELECT reservation_id, guest_last_name, guest_full_name, unit_number, floor, key_sa FROM reservations2 INNER JOIN guest ON (reservations2.reservation_id=guest.reservation_idg) INNER JOIN unit USING (unit_id) WHERE reservation_id=? AND guest_last_name=?");
$stmt->bind_param("ss", $reservation_id, $guest_last_name);
$stmt->execute();
$stmt->bind_result($reservation_id, $guest_last_name, $guest_full_name, $unit_number, $floor, $key_sa);
if ($stmt->errno) {
die("Query failed to execute: " . $stmt->error);
}
if ($stmt->fetch()) {
echo json_encode(array("reservation_id" => $reservation_id,
"guest_last_name" => $guest_last_name,
"guest_full_name" => $guest_full_name,
"unit_number" => $unit_number,
"floor" => $floor,
"key_sa" => $key_sa));
} else {
echo "No matching rows returned.";
}
$stmt->close();
?>
Я пробовал это, получилось "undefined"
Что возвращает console.info?
Он возвращает {"reserve_id": xxx, "guest_last_name": "test", "guest_full_n ame": "test test", "unit_number": "Apartment 109", "floor": "1st", "key_sa": A }






Пожалуйста, используйте .html () вместо .val ()
$('#guest_full_name').html(json.guest_full_name);
$('#unit_number').html(json.unit_number);
$('#floor').html(json.floor);
Вы также можете использовать приведенный ниже код без jQuery
document.getElementById('guest_full_name').innerHTML = json.guest_full_name;
document.getElementById('unit_number').innerHTML = json.unit_number;
document.getElementById('floor').innerHTML = json.floor;
ОБНОВИТЬ: Преобразуйте свой ответ в объект json в функции успеха,
var json = JSON.parse(json);
Используйте приведенный ниже код в своей функции успеха для преобразования в объект json: var json = JSON.parse (json);
Используйте innerHTML, например
document.getElementById("guest_full_name").innerHTML = "<p>whateveryouwanttoshow</p>";