2015-06-08 3 views
0

Я работаю над созданием html-формы с циклом, где «quan» - это количество. Я хотел бы вспомнить переменные сеанса для случаев, когда форма отправлена, пользователь отправлен на страницу подтверждения и возвращается в форму для настройки чего-либо (опечатка в записи, например). Я не смог найти помощь для этого сценария. Вот что я пробовал.вызов переменной сеанса в цикле

for($i = 1; $i<= $_SESSION['quan']; $i++) 
{ 
    echo "<input type=\"text\" name=\"nam_" . $i . "\" size=\"35\" value=\""; 
    if (array_key_exists($_SESSION['nam_$i']) { echo $_SESSION['nam_$i']; }; 
    echo "\" /><br />"; 
} 

Это создает серию почтовых переменных (например, $_POST['nam_1']$_POST['nam_2'] и т.д.) в зависимости от заказанного количества. Я конвертирую переменные Post в переменные сеанса w/другой цикл при обработке формы; и в выражении if я пытаюсь вспомнить переменную сеанса, введенную пользователем, если им нужно вернуться в форму, чтобы что-то исправить.

Очевидно, что значение сеанса nam_$i - это неправильный способ сделать это.

Я играл с переменными переменными без успеха. Заранее спасибо за вашу помощь.

+0

Вы должны использовать '' nam_ $ i "', с двойными кавычками для замены переменной '$ i'. –

+0

Отлично, и так просто ... большое спасибо! –

ответ

0

Боб,

Это делает код более удобным для чтения и поэтому отладки, если вы используете другой разделитель текста для echo, чем вы собираетесь использовать для вашего html также вы не должны добавить все те избежать \ символов что obsquire что происходит то, используя

echo ' '; 

позволит использовать двойные кавычки " для HTML. так

for($i = 1; $i<= $_SESSION['quan']; $i++) 
{ 
    echo '<input type="text" name="nam_' . $i . '" size="35" value="'; 
    if (array_key_exists($_SESSION["nam_$i"]) { 
     echo $_SESSION["nam_$i"]; 
    }; 
    echo '"/><br />'; 
} 

Легче читать и отлаживать.

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