У меня есть две страницы. Первый - я отправляю данные на вторую страницу. Вторая страница, которую я использую для редактирования переданных данных и других данных в моей базе данных. Я призываю данные, которые я послал через так:Значения форм не публикуются
$id = $_POST['id'];
$first = $_POST['first'];
$last = $_POST['last'];
$product = $_POST['product'];
вопрос, у меня есть другие данные на странице, и всякий раз, когда я редактировать эту информацию, я хочу, чтобы иметь возможность сделать UPDATE query
, чтобы сохранить новая информация. Однако мой запрос не работает, и я считаю, что это связано с тем, что данные нового поля ввода (данные, которые я не отправил с первой страницы) не распознаются.
Всякий раз, когда я var_dump значения, я получаю данные (и в том же формате), как и я отправил их на эту страницу.
Вот мой код для второй страницы:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$id = $_POST['id'];
$first = $_POST['first'];
$last = $_POST['last'];
$product = $_POST['product'];
$newId = filter_var($id, FILTER_SANITIZE_STRING);
try {
$host = 'localhost';
$name = '';
$user = '';
$password = '';
$dbc = new PDO("mysql:host=$host;dbname=$name", $user, $password);
}catch(PDOException $e) {
echo $e->getMessage();
}
$stmt = $dbc->query("SELECT * FROM users WHERE id='$newId' ");
$stmt->setFetchMode(PDO::FETCH_ASSOC);
//print_r($stmt);
while($row = $stmt->fetch()) {
$productAmount = $row['amount'];
$productAvailable = $row['available'];
?>
<form name="update" method="POST">
<input type="text" name="id" value="<?php echo $newId; ?>">
<input type="text" name="first" value="<?php echo $first; ?>">
<input type="text" name="last" value="<?php echo $last; ?>">
<input type="text" name="product" value="<?php echo $product; ?>">
<input type="text" name="amount" value="<?php echo $row['amount']; ?>">
<input type="text" name="available" value="<?php echo $row['available']; ?>">
<button type="submit">Update Product Information</button>
</form>
<?php
}
var_dump($_POST);
if(isset($_POST['update'])) {
$stmt = $dbc->prepare("UPDATE users SET first = ?, last = ?, product = ?, amount = ?, available = ? WHERE id = ?");
$stmt->bindParam(1, $_POST['first']);
$stmt->bindParam(2, $_POST['last']);
$stmt->bindParam(3, $_POST['product']);
$stmt->bindParam(4, $productAmount);
$stmt->bindParam(5, $productAvailable);
$stmt->bindParam(6, $newId);
$stmt->execute();
}
?>
Когда я var_dump($_POST);
я получаю следующие значения, очевидно, не включая данные о amount
и available
.
array(5) { ["id"]=> string(1) "4" ["first"]=> string(3) "Tom" ["last"]=> string(5) "Brady" ["product"]=> string(3) "Tea" ["edit"]=> string(4) "Edit" }
Почему не все мои данные признаются?
Изменить кнопку для '<входной тип = "отправить" значение = "Обновить информацию о продукте"/>' –
вздоха. Когда люди наконец остановят эту странную привычку поместить форму и код ее обработки в один файл? В этом нет смысла. – arkascha
@arkascha Я буду менять это на представление ajax, как только я получу его работу. – Becky