2016-03-30 4 views
1

Я попытался передать входное значение от пользователя на другую страницу с помощью метода сеанса после нажатия кнопки «Отправить».

Моя страница имеет форму с одной кнопкой, которая называется «Добавить текстовое поле». Эта кнопка позволяет пользователю самостоятельно добавлять текстовые поля.

Вот мой текущий код

$(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 вместо использования для цикла в этом случае?

+0

Вместо того чтобы устанавливать имя ввода со счетчиком, вы можете просто использовать '' <входной тип = "текст" название = "текстовое поле [] '' '. На стороне PHP вы можете использовать' 'count ($ post ['textbox'])' ', чтобы получить количество текстовых полей и использовать этот счет в цикле. –

ответ

3

Вы должны сначала проверить, установлено ли или текстовое поле. Добавьте условие для проверки перед его печатью.

<?php 
for($i=1; $i<=10; $i++) 
{ 
    if(isset($_SESSION['textbox'.$i])){ 
    echo "<strong>".$i."</strong> ".$_SESSION['textbox'.$i]."<br>";//Use the session variables 
    } 
} 
session_destroy(); 

?>

+0

Perfect man ... Thanks – stackacc

Смежные вопросы