Форма PHP Добавление переменных для «Корзина» - PullRequest
2 голосов
/ 11 февраля 2010

У меня есть этот код в моей HTML-форме:

<form action="cart.php" method="post">

<input type="hidden" value="1" name="sample_" id="sample_">
Sample Bottle  <br /><input type="submit" value="Add to Cart" name="sample"><br />

</form>


<h1>Cart Total: $<?php echo $cart; ?></h1>

А затем в указанном файле cart.php у меня есть:

        $cart = 0;
    $samples = ($_POST['sample_']) * 50;
    $cart = $cart + $samples;

    echo $cart;'

К сожалению, этот код не делает то, что я хочу, и мне нужна помощь. В идеале я просто хочу, чтобы код добавил «50» в корзину, которая начинается с 0, когда нажимается кнопка «Добавить в корзину».

Пример: http://www.craighooghiem.com/linpap/order

Может кто-нибудь сказать мне, как я могу сделать это намного проще? Очевидно, я могу каким-то образом использовать <?=$_SERVER['PHP_SELF'];?> для выполнения этой функции, не выходя из файла, но каждый раз, когда я пытаюсь это сделать, требуется вернуться на домашнюю страницу веб-сайта.

Я использую файл шаблона Wordpress для PHP, если это имеет значение.

РЕДАКТИРОВАТЬ: я быстро узнал, что я совсем не так хорошо знаком с PHP, я едва знаю веревки на этом этапе.

Ответы [ 3 ]

1 голос
/ 11 февраля 2010
<?php
$cart = 0;
 // good practice to see if the submit button has been pressed.
 if (isset($_POST['submit'])) {
 // no need to explicitly cast to an int, PHP is loosely typed.
  $samples = ($_POST['sample_']) * 50;
  $cart = $cart + $samples;
 }
?>
<form action="echo.php" method="post">
<input type="hidden" value="1" name="sample_" id="sample_">
Sample Bottle  <br />
<input type="submit" value="Add to Cart" name="submit"><br />
</form>
<h1>Cart Total: $<?php echo $cart; ?></h1>

Этот код выводит «50» для меня.

Я изменил атрибут action, чтобы он совпадал с моим файлом PHP. Кроме того, я изменил атрибут name моей кнопки отправки на отправить для ясности.

1 голос
/ 11 февраля 2010

Чтобы остаться на той же странице, оставьте атрибут action формы пустым, например:

<form method="post" action="">

Теперь, после отправки, он не будет переходить на домашнюю страницу сайта.

Наконец, измените ваш код следующим образом:

$samples = intval($_POST['sample_']) * 50;
$cart = intval($cart) + $samples;
echo $cart;
0 голосов
/ 11 февраля 2010

Может быть, вы не закрыли свой тег ввода для скрытого поля? Так что добавь

</input> 

После этого. Если это не помогает, убедитесь, что вы получаете переменную post, повторяя ее. Если это выглядит правильно и все еще не работает, попробуйте заставить php конвертировать в int с intval (что он должен делать в любом случае). Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...