Ответ 1
Try:
<?php
if (isset($_POST['name'])) {
$name = $_POST['name'];
}
if (isset($_POST['price'])) {
$price = $_POST['price'];
}
if (isset($_POST['description'])) {
$description = $_POST['description'];
}
?>
Я новичок в PHP, и я получаю эту ошибку:
Примечание: Undefined index: productid в /var/www/test/modifyform.php on строка 32
Примечание: Undefined index: имя в /var/www/test/modifyform.php on line 33
Примечание: Undefined index: цена в /var/www/test/modifyform.php on line 34
Примечание: Undefined index: описание в /var/www/test/modifyform.php в строке 35
Я не мог найти какое-либо решение в Интернете, поэтому, возможно, кто-то может мне помочь.
Вот код:
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
<input type="hidden" name="rowID" value="<?php echo $rowID;?>">
<p>
Product ID:<br />
<input type="text" name="productid" size="8" maxlength="8" value="<?php echo $productid;?>" />
</p>
<p>
Name:<br />
<input type="text" name="name" size="25" maxlength="25" value="<?php echo $name;?>" />
</p>
<p>
Price:<br />
<input type="text" name="price" size="6" maxlength="6" value="<?php echo $price;?>" />
</p>
<p>
Description:<br />
<textarea name="description" rows="5" cols="30">
<?php echo $description;?></textarea>
</p>
<p>
<input type="submit" name="submit" value="Submit!" />
</p>
</form>
<?php
if (isset($_POST['submit'])) {
$rowID = $_POST['rowID'];
$productid = $_POST['productid']; //this is line 32 and so on...
$name = $_POST['name'];
$price = $_POST['price'];
$description = $_POST['description'];
}
Что я делаю после этого (или, по крайней мере, я пытаюсь), это обновить таблицу в MySQL.
Я действительно не могу понять, почему $rowID
определяется, а другие переменные не являются.
Спасибо, что нашли время ответить мне. Ура!
Try:
<?php
if (isset($_POST['name'])) {
$name = $_POST['name'];
}
if (isset($_POST['price'])) {
$price = $_POST['price'];
}
if (isset($_POST['description'])) {
$description = $_POST['description'];
}
?>
По-видимому, в вашей html-форме отсутствует индекс 'productid'.
Сначала проверьте свои входы html. например, <input type="text" name="productid" value="">
Но это будет обрабатывать текущую ошибку, которую создает PHP.
$rowID = isset($_POST['rowID']) ? $_POST['rowID'] : '';
$productid = isset($_POST['productid']) ? $_POST['productid'] : '';
$name = isset($_POST['name']) ? $_POST['name'] : '';
$price = isset($_POST['price']) ? $_POST['price'] : '';
$description = isset($_POST['description']) ? $_POST['description'] : '';
TRY
<?php
$rowID=$productid=$name=$price=$description="";
if (isset($_POST['submit'])) {
$rowID = $_POST['rowID'];
$productid = $_POST['productid']; //this is line 32 and so on...
$name = $_POST['name'];
$price = $_POST['price'];
$description = $_POST['description'];
}
Это происходит потому, что ваш PHP-код запускается до того, как форма будет отправлена.
Чтобы избежать этого, сверните свой PHP-код в следующий оператор if, и он будет обрабатывать остальные, не нужно устанавливать операторы для каждой переменной
if(isset($_POST) && array_key_exists('name_of_your_submit_input',$_POST))
{
//process PHP Code
}
else
{
//do nothing
}
Должна быть проблема, когда вы создаете <form>
. Уверен, что переменные $name
, $price
являются NULL
или пустой строкой, когда вы echo
их в value
поля <input>
. Пустые поля ввода не отправляются браузером, поэтому $_POST
не будет иметь своих ключей.
В любом случае, вы можете проверить это с помощью isset()
.
Проверить переменные со следующим:
if(isset($_POST['key'])) ? $variable=$_POST['key'] : $variable=NULL
Лучше установите его на NULL
, потому что
Значение NULL представляет переменную без значения.
Эй, это происходит потому, что вы пытаетесь отобразить значение, прежде чем назначать его U просто заполните значения и отправьте форму, на которой будет отображаться правильный вывод Или вы можете написать ur php-код ниже форм тегов Он будет работать без ошибок
Если вы используете wamp-сервер, я рекомендую вам использовать сервер xampp. вы. Я получаю эту ошибку менее чем за минуту, но я решил это, используя (isset) функцию. и я не получаю ошибок. и после этого я удаляю функцию (isset), и я не вижу ошибки.
Кстати, я использую сервер xampp
эта ошибка произошла когда-то атрибут метода (действительный метод передачи) Ошибка: method = "get", но вызывается $Fname = $_POST [ "name" ]; или
method="post" but called by $Fname = $_GET["name"];
Подробнее см. http://www.doordie.co.in/index.php
Чтобы удалить эту ошибку, в форме html вы должны сделать следующее в enctype
:
<form enctype="multipart/form-data">
Приведенная ниже причина является причиной этой ошибки, если вы начинаете с данных формы в enctype, поэтому вы должны начать с multipart:
<form enctype="form-data/multipart">