Я попытался передать входное значение от пользователя на другую страницу с помощью метода сеанса после нажатия кнопки «Отправить».
Моя страница имеет форму с одной кнопкой, которая называется «Добавить текстовое поле». Эта кнопка позволяет пользователю самостоятельно добавлять текстовые поля.
Вот мой текущий код
$(document).ready(function() {
var counter = 2;
$("#addButton").click(function() {
if (counter > 10) {
alert("Only 10 textboxes allow");
return false;
}
var newTextBoxDiv = $(document.createElement('div')).attr("id", 'TextBoxDiv' + counter);
newTextBoxDiv.after().html('<label>Textbox #' + counter + ' : </label>' + '<input type="text" name="textbox' + counter + '" id="textbox' + counter + '" value="" >');
newTextBoxDiv.appendTo("#TextBoxesGroup");
counter++;
});
$("#removeButton").click(function() {
if (counter == 2) {
alert("System required at least one.");
return false;
}
counter--;
$("#TextBoxDiv" + counter).remove();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form action="<?php $_PHP_SELF ?>" method="post">
<div id='TextBoxesGroup'>
<div id="TextBoxDiv1">
<label>Textbox #1 :</label>
<input type='textbox' id='textbox1' name="textbox1">
</div>
</div>
<input type='button' value='Add Button' id='addButton'>
<input type='button' value='Remove Button' id='removeButton'>
<br/>
<input type="submit" name="submit" id="submit">
</form>
А вот мой код, чтобы присвоить значение сессии в PHP
<?php
if(isset($_POST['submit'])) {
for($i=1; $i<=10; $i++)
{
if(isset($_POST['textbox'.$i]))
{
$obj = $_POST['textbox'.$i];
echo $obj,'<br>';
$_SESSION['textbox'.$i] = $obj;
}
}
header("Location:../brightan-system/result.php");
}
?>
и вот как я пытался получить значение со второй страницы
<?php
for($i=1; $i<=10; $i++)
{
echo "<strong>".$i."</strong> ".$_SESSION['textbox'.$i]."<br>";//Use the session variables
}
session_destroy();
?>
На самом деле, я могу получить результат на второй странице, но проблема в том, что пользователь добавляет только 4 текстовых поля, тогда будет ошибка, указанная Undefined index на второй странице. Это связано с тем, что цикл for создает 10 переменных сеанса на второй странице.
Есть ли другой способ получить переменную session вместо использования для цикла в этом случае?
Вместо того чтобы устанавливать имя ввода со счетчиком, вы можете просто использовать '' <входной тип = "текст" название = "текстовое поле [] '' '. На стороне PHP вы можете использовать' 'count ($ post ['textbox'])' ', чтобы получить количество текстовых полей и использовать этот счет в цикле. –