Я не могу получить значение в моей переменной
<html>
<head>
<title>Panier</title>
<?php
$tot = 'test';
$m1 = $_POST['montant1'];
?>
</head>
<body>
<h1>Panier</h1>
<table border=1>
<form action="panier.php" method="POST">
<tr><td>Produit</td><td>Quantite</td><td>Prix Unitaire</td><td>Action</td><tr>
<tr><td>Produit 1</td><td><input type='text' name='montant1' value='2'></form></td><td>3.19</td><td><a href=>Supprimer</a></tr>
</form>
</table>
</body>
</html>
по какой-то причине моя переменная $m1 не может получить то, что находится внутри входного текстового поля 'montant1'
3 ответа
Начните с форматирования вашего кода, чтобы он был читабельным. Это поможет вам отладить или, скорее, не делать глупых ошибок.
Было несколько очевидных проблем:
У вас было 2 конечных тега формы </form>
Пропал хотя бы один </td>
У вас нет кнопки отправки.
Код для выбора того, что представлено логически, должен идти вверху скрипта.
Вам нужно каким-то образом решить, является ли это первым выполнением скрипта, так как в этой ситуации данные не будут передаваться по $_POST.
Так что попробуйте вместо этого, это в основном ваш код с небольшой очисткой.
<?php
$tot = 'test';
$m1 = isset($_POST['montant1'])
? $_POST['montant1']
: 'First run, the submit button has not been pressed yet';
?>
<html>
<head>
<title>Panier</title>
</head>
<body>
<h1>Panier</h1>
<?php
echo 'You entered : ' . $m1;
?>
<table border=1>
<form action="panier.php" method="POST">
<tr>
<td>Produit</td>
<td>Quantite</td>
<td>Prix Unitaire</td>
<td>Action</td>
<tr>
<tr>
<td>Produit 1</td>
<td><input type='text' name='montant1' value='2'></td>
<td>3.19</td>
<td><a href=>Supprimer</a></td>
<td><input type="submit" name="submit"></td>
</tr>
</form>
</table>
</body>
</html>
Я заметил, что вы не добавили кнопку отправки в вашу форму, поэтому нет никакого способа подтолкнуть данные вперед! Добавьте это после вашего тега ввода текста (в форме).
<input type="submit" value="Submit your form">
Предполагая, что вы публикуете на той же странице. Замените ваш PHP-код следующим:
<?php
if($_POST){
$tot = 'test';
$m1 = $_POST['montant1'];
}
?>
Таким образом, вы будете обрабатывать данные, только если они там есть.
Также рекомендуется ставить $_SERVER['PHP_SELF']
вместо самого имени страницы, если вы публикуете на той же странице. Таким образом, вам не придется обрабатывать изменения кода, если вы переименуете файл.
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
Если файл, который вы показали нам, не называется "panier.php", попробуйте заменить
<form action="panier.php" method="POST">
с кодом ниже:
<form action="" method="POST">
что приведет к отправке формы по тому же URL-адресу, с которого она пришла.