Я пытаюсь создать корзину покупок для назначения с помощью PHP, HTML и Javascript, но я изо всех сил пытаюсь получить даже основы работы PHP.
Поскольку это назначение, я не собираюсь публиковать свой точный код, но я опубликую несколько модифицированных кодов, описывающих общие понятия, с которыми я борюсь. Также обратите внимание, что я сильно упростил программу в этом посте, но я думаю, что я включил все релевантные.
Для начала, у меня есть форма в HTML, с тегами опций выбора:
<?php session_start(); ?> <!-- This is on the first line of the page --> ... <form id="formexample" method="post" action="cart.php"> <select name="formexample2"> <option value="1">Option 1</option> <option value="2">Option 2</option> </select> <select name="formexample2"> <option value="1">Option 1</option> <option value="2">Option 2</option> </select> <button type="button" onclick="addToCart()">Add to Cart</button> </form> <div class="test"></div>
«addToCart ()» – это функция Javascript, которую я написал в отдельный файл и импортировал в теги «header». Я знаю, что функция работает, потому что она реагирует, когда я добавляю «alert (« test »);». Одна из строк следующая:
$(".test").append("<?php include \"cart.php\"; ?>");
Когда я заменяю приложение «test» в тегах «p», он появляется без проблем.
«cart.php» – это php-файл в том же каталоге. Он хранит данные для сеанса:
<?php $PHPtest= 1; $_SESSION['cart'][$_POST['formexample1']] = $_POST['formexample1']; $_SESSION['cart'][$_POST['formexample1']][$_POST['formexample2']] = [$_POST['formexample2']] /* Note that in my actual code the form has 11 different select tags, some with up to ten options. I'm storing the information as a big multidimensional array in $_SESSION for ease. */ ?>
Я пытаюсь создать цикл в той же функции Javascript, о которой я упоминал ранее, в которой я обращаюсь к данным сеанса. Цикл начинается с «if (? Php echo isset ($ _ SESSION [\ 'cart \'] [$ _ POST [\ 'formexample1 \']];?>") "- я удалил <перед вопросительным знаком здесь, так что вы можете увидеть код, когда я делаю это сообщение.Это моя неудачная программа. Кажется, моя проблема заключается в передаче переменной PHP в Javascript. Чтобы проверить это, я написал следующее в начале cart.php:
$PHPtest = 1;
Затем я написал это в функцию Javascript:
var test = "<?php echo $PHPtest; ?>"; alert(test);
Согласно Google, это формат, который вы должны использовать при передаче переменной PHP в Javascript. Когда я это делаю, предупреждение просто показывает, что находится между кавычками (т.е. <? Php echo $ cartCheck;?>).
Я смотрю онлайн, и насколько я могу судить, я делаю то, что люди говорят о сеансах, назначая переменные PHP для Javascript и массивов; так почему же он не работает?
Заранее спасибо.
РЕДАКТИРОВАТЬ:
Я прокомментировал строки $ _SESSION в cart.php на данный момент. Я тренируюсь с $ PHPtest.
Теперь cart.php выглядит так:
<?php session_start(); $PHPtest = 1; echo json_encode($PHPtest); ?>
Теперь функция Javascript выглядит так (с добавлением AJAX):
function addToCart() { var test; $.ajax( { url:"cart.php", type:"post", data:"$PHPtest", success:function(response) { test = $.parseJSON(response); console.log(response); //sends the response to your console }, error:function() { console.log("Error"); } }); alert(test); }
Я также перевел «include» cart.php «» в верхней части главной страницы. См. Обсуждение под ответом Джоша С., чтобы посмотреть, как я сюда попал.
Предупреждение показывает «undefined».
EDIT 2 Я обновил свою функцию на основе этого ответа здесь: Получить переменную из файла PHP с помощью JQuery / AJAX
Это то, что у меня есть сейчас:
function addToCart() { var test; $.ajax( { url:"cart.php", type:"post", data: data, success:function(PHPtest) { test = $.parseJSON(PHPtest); console.log(test); //sends the response to your console }, error:function() { console.log("Error"); } }); alert(test); }
Я пробовал различные комбинации «PHPtest» и «test», но не могу заставить его работать. Теперь я не получаю никакого предупреждения.