javascript — статическая переменная php, которая назначается только один раз и никогда не менялась

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

JS CODE:

function myFunction() {
var person = prompt("Please enter Cart Name");

document.getElementById("person").value=person;
document.getElementById("form").submit();

// if (person != null) {
//     document.getElementById("demo").innerHTML =
//   "Your Cart Name is " + person;
//}}

PHP:

 <?php
//ini_set('display_errors',1);
// error_reporting(E_ALL);
include('connection.php');

if ( isset($_POST['Pro_ID'], $_POST['Price'] , $_POST['Pro_Name'] ) ) {

static $cart=$_POST['cart_Name'];  //this line is just a try, but it gives me an error: Parse error: syntax error, unexpected '$_POST' (T_VARIABLE)

$qry="INSERT INTO shopping_cart(Cart_Name,Pro_Name,Pro_ID,Price) VALUES ('$cart','".$_POST['Pro_Name']."',".$_POST['Pro_ID'].",".$_POST['Price'].")";
$result = mysql_query ($qry );
$qry = 'SELECT * FROM product' ;
}
else

$qry = 'SELECT * FROM product' ;
//Run QUERY
$result = mysql_query ($qry);?>

для переменной cart_Name он был передан как скрытый ввод

0

Решение

В общем, вы делаете что-то вроде этого:

if(!isset($_SESSION['cart_name']) && isset($_POST['cart_name'])) {
$_SESSION['cart_name'] = $_POST['cart_name'];
}

// then reference $_SESSION['cart_name'] from there on out.

Не забудьте позвонить session_start() на вашей странице, прежде чем пытаться взаимодействовать с $_SESSION,

Теперь на стороне JS вы хотите вызывать вашу подсказку, только если корзина еще не была названа. Так что я хотел бы вывести где-нибудь на странице переменную — должна быть выведена перед любыми вызовами myFunction() на странице … id, вероятно, положить его в верхней части …:

<script type="text/javascript">
var cartName = <?php echo isset($_SESSION['cart_name'])
? json_encode($_SESSION['cart_name'])
: 'null';
?>;
</script>

Тогда в вашей функции вы можете проверить это:

function myFunction() {
// note the lack of `var` - this means we are referencing the global namedCart
// normally i would recommend passing this in as an argument but i dont have enough detail
// on your set up
if (namedCart === null) {
// if named cart doesnt exist we name it from the prompt
namedCart = prompt("Please enter Cart Name");
}

document.getElementById("person").value=namedCart;
document.getElementById("form").submit();
}
1

Другие решения

Смотри php manuel о session_start() $ _SESSION [] http://php.net/manual/en/function.session-start.php

0

По вопросам рекламы [email protected]