2013-07-31 2 views
0

Передача значения на другую страницу прошла успешно, я прочитал много тем по этому вопросу, мне очень помог фондовый поток.Перенос значения на другую страницу с помощью PHP session - textarea

На первой странице (например, page1.php) У меня есть вход. Обычно я печатаю для него значение.

С php я пишу в переменной сеанса, и после нажатия кнопки submit я могу передать это значение на другую сторону (например, page2.php), которая является простой страницей контактов. Это значение вставляется в поле textarea.

Моя проблема в том, что для ввода требуется только значение, которое я набираю непосредственно на вход, который находится на стр. 1.php. Я хотел создать скорее калькулятор, который будет состоять из цены в соответствии с введенным количеством килограммов продукта. (килограмм - это значение, введенное во вход).

Как получить поле формы было чисто, а Заказ продукта был перенаправлен правильно?

Мой код в page1.php:

<?php 
session_start(); 
$_SESSION['towar1'] = $cena1; 
?> 

<form method="get" action="kontakt.php"> 
<input id="wart1" type="number" value="0" name="towar1" class="ilosc" required> 
</form> 

Мой код в page2.php (conttact страница):

<?php 
session_start(); 
$cena1 = $_GET['towar1']; 
?> 

<label for="wiadomosc"></label> 
<textarea placeholder="" name="wiadomosc" required><?php echo $cena1 ?></textarea> 

/// ПРОБЛЕМА

, когда я пытаюсь понять, как чтобы получить хорошее значение цены продукта (например, для 1 кг будет 19 $) Я написал код этого вида непосредственно на своем странице2.php:

<?php echo $cena1*19 ?> 

Но когда я это делаю, любой прямой вход на страницу контакта дает мне уже написанный текст, который равен 0 (ноль).

Могу ли я избежать этого 0? Как я могу сделать textarea всегда пустым, и мой page1.php (калькулятор) рассчитает правильное число (const, которое составляет 19 $ за килограмм и количество килограммов, введенное вами на вход)

+0

Почему бы вам не использовать JavaScript/JQuery для расчета цены? – Konsole

+0

Но когда я не установил количество килограммов, а js/jQ вычислил его иначе, то 0 (ноль) будет на выходе и будет существовать на textarea, даже если я сначала войду на страницу2.php (моя родная страница) время и всегда, не заходя на мою страницу калькулятора (page1.php) Извините за мой сумасшедший английский - я знаю, что это не хорошо. –

ответ

1

Ваш вопрос совершенно не ясен , позволяет пройти через это: page1.php содержит входные данные, которые управляют количеством Item и переменной $ _SESSION с его ценой, на странице 2 вам нужно отображать количество * price_per_item number, правильно? Если да, то попробуйте следующий подход:

<?php 
session_start(); 
$cena1 = $_GET['towar1'] * $_SESSION['towar1']; 
?> 

<label for="wiadomosc"></label> 
<textarea placeholder="" name="wiadomosc" required><?php echo $cena1 ?></textarea> 

, где $ _GET [ 'towar1'] является количество пунктов и $ _SESSION [ 'towar1'] является цена товара.

p.s Для получения дополнительной техники, не стесняйтесь спрашивать в комментариях.

Надеюсь, это поможет, приветствия.

EDIT

Учитывая нашу converstation в комментариях, я могу предположить, что это будет подход поможет вам:

$ cena1 = (пусто ($ _ GET [ 'towar1']) & & $ _GET [ 'towar1']! = 0)? $ _GET ['towar1'] * 19: '';

Эта строка проверяет, не является ли переменная $ _GET ['towar1'] пустой, а не нулевой. Если это соответствует условию - сделайте вычисление, else - верните пустую строку (но не нуль).

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

+0

Проблема с 0 (ноль) появляется в textarea, когда все правильно вычисляется. Я знаю, что 0 появляется, потому что килограммы не заданы пользователем во входных данных (на стр. 1.php) и const. (цена 19 $) сходит с ума, потому что 0 * 19 = 0 это странно для меня. Но как исправить это значение 0 никогда не появится, но только тогда, когда пользователь нажимает кнопку submit на странице1.php и записывает некоторые значения на входе в килограммы. –

+0

Просьба прояснить его более глубоко: page1.php имеет форму, которая отправляет на страницу2.php значение QUANTITY с переменной $ _GET ['towar1'], правильно? page2.php содержит калькуляцию, которая должна умножать QUANTITY * 19 и печатать ее в текстовое поле как FINAL_PRICE, правильно? Вопрос состоит в том, чтобы предотвратить 0 (ноль) в QUANTITY * 19, когда значение QUANTITY равно 0 (ноль) на стр. 2.php? –

+0

да точно, страница1 только посылает значение QUANTITY (в page1 у меня есть это $ _SESSION ['towar1'] = $ cena1;). page2 содержит простую форму связи, несколько входов (имя, адрес электронной почты, телефон) и текстовое поле (это место для вставленного вывода умножить QUANTITY * 19). Когда я использую чистый код (я имею в виду без умножения * 19 или любое математическое действие), 0 (ноль) в textarea НЕ ПОЯВЛЯЕТСЯ - так что я могу сказать, что все в порядке, НО с этой опцией page1 отправляйте КОЛИЧЕСТВО ТОЛЬКО в нужное место (textarea) и ничего более. Только если страница2 получила пустое поле текстового поля без 0 и правильно подсчитала КОЛИЧЕСТВО * 19 после отправки его со страницы 1 –

0

Причина, по которой она не работает, заключается в том, что вы неправильно используете сеансы.

Рабочий процесс применения должен быть как:

  1. пользователь вводит сумму
  2. вы обрабатывать его, при необходимости вы даете сообщение об ошибке или что-то другое
  3. сохранить сумму сессии
  4. перенаправлением пользователь на следующей странице
  5. расчет стоимости
  6. результат воздействия

Пример кода с использованием кода:

Page1 должно быть:

<?php 
session_start(); 
if(isset($_GET['wart1'])) { 
    $_SESSION['towar1'] = (int) $_GET['wart1']; 
    header('Location: page2.php'); 
} 
?> 

<form method="get" action="kontakt.php"> 
<input id="wart1" type="number" value="0" name="towar1" class="ilosc" required> 
</form> 

Page2:

<?php 
session_start(); 
$cena1 = $_SESSION['wart1'] * 19; 
?> 

<label for="wiadomosc"></label> 
<textarea placeholder="" name="wiadomosc" required><?php echo $cena1 ?></textarea> 
Смежные вопросы