Я пытаюсь обновить поля формы, используя ajax
и php
.Как правильно ответить на вызов AJAX в PHP?
Мой АЯКС вызов выглядит так: сценарий обработки
var productId = 'productId=' + id;
$.ajax({
url: './includes/process_edit_products.php',
method: 'post',
data: productId
}).success(function(response) {
// Populate the form fields with the data returned from server
$('#userForm')
.find('[name="product_id"]').val(response.product_id).end()
.find('[name="product_name"]').val(response.product_name).end()
.find('[name="product_price"]').val(response.product_price).end()
.find('[name="product_des"]').val(response.product_des).end();
// Show the dialog
bootbox
.dialog({
title: 'Edit Products',
message: $('#userForm'),
show: false // We will show it manually later
})
.on('shown.bs.modal', function() {
$('#userForm')
.show() // Show the login form
.formValidation('resetForm'); // Reset form
})
.on('hide.bs.modal', function(e) {
$('#userForm').hide().appendTo('body');
})
.modal('show');
});
PHP выглядит так:
if ((isset($_POST['productId'])) && (is_numeric($_POST['productId']))) { // Form submission.
$productId = (int)$_POST['productId'];
//echo $productId;
// fetch the selected product to edit
$query = " SELECT product_id, product_name, price, product_des
FROM product
WHERE product_id = ? LIMIT 1";
$stmt = $mysqli->prepare($query);
if ($stmt) {
// Bind "$imageId" to parameter.
$stmt->bind_param('i', $productId);
// Execute the prepared query.
$stmt->execute();
$stmt->store_result();
// count rows
$numrows = $stmt->num_rows;
if ($numrows == 1) {
// get variables from result.
$stmt->bind_result($product_id, $product_name, $price, $product_des);
// Fetch all the records:
while ($stmt->fetch()) {
//echo $product_id;
//echo $product_name;
//echo $price;
//echo $product_des;
//$response = array('product_id' => $product_id, 'product_name' => $product_name, 'product_price' => $price, 'product_des') => $product_des;
//echo json_encode($Response);
$resultArray['product_id'] = $product_id;
$resultArray['product_name'] = $product_name;
$resultArray['price'] = $price;
$resultArray['product_des'] = $product_des;
echo json_encode($resultArray);
}
// Close the statement:
$stmt->close();
unset($stmt);
}
}
}
Моя проблема в том, что я не уверен, как получить данные для обработки PHP обратно и заполнить форму поля с существующими данными.
Может кто-нибудь сказать, что мне нужно сделать в моем php.
Вы, кажется, ожидаете, что ответ «response» в вашем обратном вызове будет объектом JSON, но ваш PHP-скрипт просто повторяет пару строк ('$ product_id',' $ product_name' и т. Д.). Создайте массив со всеми соответствующими данными и json_encode. – Huey
@ Huey, Можете ли вы любезно показать мне, как я изменяю свой php соответственно. Спасибо. – user3733831
@SMcCrohan При редактировании сообщения; пожалуйста, удалите ненужные фразы типа «Спасибо», «Привет» и т. д. http://meta.stackexchange.com/q/2950/212576 – hjpotter92