Как использовать ajax для назначения переменной javascript переменной php

У меня есть следующая функция, и я хочу присвоить переменную "Количество" переменной php с помощью Ajax, но я не очень разбираюсь в ajax, поэтому кто-то может дать мне код, который будет выполнять эту работу. Спасибо

var Quantity;
$("select").change(function() {
  var str = "";
  var price = <?php echo $row[price];?>;
  $("select option:selected").each(function() {
    str += $(this).text() + " ";
  });
  $(".plan_price").text("price : " + parseInt(str) * price + " baht");
  Quantity = parseInt(str);
}).change();

function selectOne() {
  var select = document.getElementById('quantity');
  for (var i=0; i<<?php echo $row[item_amount]?>; i++) {
    select.options[select.options.length] = new Option(i+1, i);
  } 
}

Я хочу, чтобы переменная количества была вычтена из $row[item_amount] с сервера

if ($row[item_amount] - Quantity  == 0) {
   $sql = "update item set active='2',item_amount=item_amount-Quantity,buy_time=NOW() where id='$id'";
} else {
   $sql = "update item set item_amount=item_amount-Quantity,buy_time=NOW() where id='$id'";
}
$result = mysql_query($sql);

2 ответа

Добавь это:

на вашем JavaScript:

...
Quantity = parseInt(str);
$.ajax({url:"yourphp.php",type:"POST",async:false,data:{quantity:Quantity}});

на вашем PHP:

...
$Quantity = $_POST["quantity"];
if ($row[item_amount] - $Quantity  == 0) {

Я не знаю, относится ли "количество" в ваших запросах mysql к "количеству", отправленному javascript; если да, добавьте туда также префикс $.

Есть способы. Вы можете использовать переменные сессии PHP, чтобы сделать это. Вы можете использовать фрагмент ниже, чтобы сохранить POST переменная и сохранить его как переменную сеанса PHP.

<?php

header('Content-Type: application/json; charset=UTF-8');

session_start();

if ($_POST['foo'] == true) {
  $_SESSION['foo'] = $_POST['foo'];
  echo json_encode(true);
}
else {
  echo json_encode(false);
}

?>

Теперь вам нужен JavaScript для подключения к сценарию PHP, и, похоже, вы уже используете jQuery, поэтому мы сделаем это так:

$.post('/_/ajax/init_session.php', { foo: 'bar' }, function(data) {
  console.log(data);
}, json);

Приведенный выше фрагмент JS просит скрипт PHP сохранить $_SESSION['foo'] как 'bar', После получения данных консоль JavaScript вашего браузера отображает либо true или же falseв зависимости от того, было ли значение сохранено или нет.

Другие вопросы по тегам