Автоинкрементные вводимые имена форм с $ _SESSION

0

Я хочу использовать PHP $_SESSION для доступа к введенным пользователем данным. Поток выглядит следующим образом:

ШАГ 1 Пользователь заполняет форму.

<form method="post" action="review.php">
<input type="text" name="length">
<input type="text" name="width">
<input typ="text" name="quantity">
<input type="submit" value="submit">
</form>

ШАГ 2 Данные формы передаются, а "review.php" преобразуется из POST в SESSION. Отзывы пользователей формируют детали и добавляют товар в корзину.

ШАГ 3 Товар добавлен в корзину покупок PayPal. Пользователь решает, что хочет добавить еще один элемент, поэтому пользователь нажимает "продолжить покупки" и возвращается к шагу 1.

ШАГ 1 Пользователь заполняет детали формы. За исключением этого времени, я хочу, чтобы имя input автоматически увеличивалось. Например:

<input type="text" name="length2">
<input type="text" name="width2">
<input type="text" name="quantity2">

И я хочу, чтобы он автоматически увеличивался, но много раз пользователь добавляет новые вещи в корзину.

<input type="text" name="length3">
<input type="text" name="length4">
<input type="text" name="etc">

Обычный поток продолжается... ШАГ 2 ---> ШАГ 3

После успешной оплаты в STEP 3 пользователь будет перенаправлен на новую страницу.

ШАГ 4 (newPage)

Все детали купленных товаров будут отображаться на этой странице по порядку и с той же группой. Например, (длина, ширина, количество), затем (длина2, ширина2, величина2) и т.д. И так далее. Каждый из них будет отображаться в разных формах.

Эти формы также будут включать <input type="file"> чтобы пользователь мог загрузить файл для каждой формы. Каждая форма представляет собой купленный предмет.

Как только пользователь загружает файлы в каждую соответствующую форму, они будут отправлены в базу данных.

ВОПРОС

  1. Как я могу автоматически input имена input с помощью PHP, и, конечно, используя $_SESSION? Я хотел бы, чтобы name возвращалось к его первоначальному имени после сеанса пользователя. Поэтому позвольте сказать, что тот же пользователь хотел заказать на следующий день, и он заказал 5 предметов, имена ввода будут равны 5 (длина, длина2,..., длина5).

  2. Как я могу отобразить все введенные пользователем данные в каждой соответствующей форме (см. STEP 4)?

Я знаю, что мне нужно делать все содержимое на PHP ($ _ SESSION, формы и т.д.), Но если у кого-то есть решение jQuery для автоматического приращения и показывая все данные в конце, я все для него.

Здесь я работал с

Пытался использовать это, чтобы отображать данные с добавочными именами, но не смог найти решение.

<?php
session_start();
?>

<form>
<?php 
$size = $_SESSION['size'];
$variables = array("$size");
$i = 1;

 foreach ($variables as $var ) {
 $name = "txt".$i;
 echo "<input type='text' name='".$name."' value='".$var."' />";
 $i++;
} 


?>


</form>

Некоторые из вас могут открыть IPN PayPal. Я также создал прослушиватель IPN, но он не вызывается через песочницу. Пользователь здесь сообщил, что его слушатель IPN не работал на песочнице, но когда он перешел на live через paypal.com, это действительно сработало. Может быть и с моим, но я хочу пойти дальше и начать продавать, поэтому мне нужен другой подход. Даже если мой слушатель IPN работает через paypal.com, я не могу рисковать жить вместе с ним, не будучи на 100% уверенным. Поэтому, если я смогу использовать этот метод до сих пор, пока не смогу подтвердить, что мой слушатель работает, я сделаю это.

Как всегда, я очень благодарен за помощь ваших ребят.

Теги:
forms
session

1 ответ

0
Лучший ответ

Я действительно понял это некоторое время назад. Здесь код, который я использую:

    <?php

if(isset($_POST['submit'])){

$_SESSION['invoice'] = $_POST['invoice'];
$invoice_no = $_SESSION['invoice'];

 $decal = array(
    'length' => $_POST['os0'],
    'width' => $_POST['os1'],
    'color' => $_POST['os2'],
    'quantity' => $_POST['os3'],
    'price' => $_POST['price'],
    'submit' => $_POST['submit']
);

$_SESSION['order'][] = $decal;
$i = 0;
}


if(isset($_SESSION['order'])){ 

foreach($_SESSION['order'] as $sav) {
$i++;
?>

    <input type="hidden" name="on0_<?php echo $i; ?>" value="Length">
    <div class="decalName">
    <label>Custom Decal <?php echo $i; ?></label>
    </div>
<div class="label-input">
<label>Length</label><input type="text" name="os0_<?php echo $i; ?>" id="length" size="2" class="num" value="<?php echo $sav['length']; ?>" readonly>
</div>
    <input type="hidden" name="on1_<?php echo $i; ?>" value="Width">
<div class="label-input"><label>Width</label><input type="text" name="os1_<?php echo $i; ?>" id="width" size="2" class="num" value="<?php echo $sav['width']; ?>" readonly>
</div>
      <input type="hidden" name="on2_<?php echo $i; ?>" value="Color">
<div class="label-input">
<label>Color</label><input type="text" name="os2_<?php echo $i; ?>" value="<?php echo  $sav['color']; ?>" readonly>
</div>
<div class="label-input">
<label>Quantity</label><input type="text" name="os3_<?php echo $i; ?>" size="2"   class="num" id="quantity" value="<?php echo $sav['quantity']; ?>" readonly>
</div>
    <input type="hidden" name="on3_<?php echo $i; ?>" value="quantity">
<input type="hidden" class="num" value="0.20">

<div class="label-input">
<label>Price $:</label><input type="text" class="tot" name="price" value="<?php echo $sav['price']; ?>" readonly>
</div><!--end label-input-->

<?php
 }
?>
  • 0
    Здравствуй. У меня есть проблема, похожая на вашу, но немного другая. Можешь мне помочь?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню