#php #html #arrays #post
#php #HTML #массивы #Публикация
Вопрос:
Я хочу, чтобы пользователь ввел animal и оно перешло на строку ниже их предыдущего ввода.
<!DOCTYPE html>
<html>
<head>
<title> Will Proj. 2</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h1> Animal Form</h1>
<form action="" method="post">
Enter animal:<br>
<input type="text" name="animal"><br><br>
<input type="Submit" value="Add Animal">
</form>
<?php
function display() {
$animal = $_POST['animal'];
echo "$animal <br>";
}
if(isset($_POST['animal'])){
display();
}
?>
</body>
</html>
В настоящее время он отображает только 1 строку за раз и обновляет строку новыми входными данными.
Комментарии:
1. Сохраните их в сеансе или в базе данных. Зависит от того, на какой срок вы хотите их сохранить.
2. Или, если вы на самом деле не заботитесь о их сохранении (в сообщении, строго говоря, не ясно, что вы делаете), тогда полностью избавьтесь от PHP и просто используйте Javascript.
3. сохраните их в сеансе, файлах cookie или базе данных
4. или, если вы хотите показать полную историю поиска любому пользователю, то база данных — лучший вариант.
5. Добавьте его в session var, а затем повторите этот var — это может помочь: php.net/manual/en/function.session-start.php
Ответ №1:
<?php
session_start();
if (!isset($_SESSION['animals']) amp;amp; $_POST['animal']) {
$_SESSION['animals'] = $_POST['animal'].'<br>';
} elseif (isset($_SESSION['animals']) amp;amp; $_POST['animal']) {
$_SESSION['animals'] .= $_POST['animal'].'<br>';
}
?>
<!DOCTYPE html>
<html>
<head>
<title> Will Proj. 2</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h1> Animal Form</h1>
<form action="" method="post">
Enter animal:<br>
<input type="text" name="animal"><br><br>
<input type="Submit" value="Add Animal">
</form>
<?php if (!empty($_SESSION['animals']) { echo $_SESSION['animals']; } ?>
</body>
</html>
Комментарии:
1. Это приведет к появлению неопределенных индексных уведомлений, когда сеанс пуст, т. Е. когда вы загружаете страницу в первый раз во время этого сеанса. Также будет выдавать неопределенные индексы, когда форма не отправлена.
2. Спасибо за ответ, я делаю это для назначения класса, и я еще не изучил сессию, поэтому я не думаю, что я должен использовать это. Я думал, что есть способ использовать для добавления переменных в массив, который затем отображает их?
3. A только увеличивает значение, например. если $ i= 1 и $ i , то $ i = 2. Но это не работает с PHP POST, только с JavaScript или jQuery.
Ответ №2:
<!DOCTYPE html>
<html>
<head>
<title> Will Proj. 2</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h1> Animal Form</h1>
<form action="" method="post">
Enter animal:<br>
<?php if(isset($_POST['animal'])){
foreach($_POST['animal'] as $animal){
echo '<input type="hidden" name="animal[]" value="'.$animal.'" >';
}
} ?>
<input type="text" name="animal[]"><br><br>
<input type="Submit" value="Add Animal">
</form>
<?php
function display() {
$animals = $_POST['animal'];
foreach($animals as $animal){
echo "$animal <br>";
}
}
if(isset($_POST['animal'])){
display();
}
?>
</body>
</html>