@yourbatya
Разрабатываю разработки

Как подставить значение в post-запрос?

Добрый день!
У меня есть форма, которая передаёт значение option-а в скрипт.
<select onchange="getval(this);" name="city" id="city" required>
    <option value="1">один</option>
    <option value="2">два</option>
</select>

function getval(sel)
{
  let city = sel.value;
      let data = {
        city_id : city
      };
      $.ajax({
        type: "POST",
        url: "city.php?city=???",
        data: data,
        success: function(html){
        $("#pz").load('city.php?city=???');
                  }
                });
};

Вопрос в том, как правильно подставить значение option-a (или city_id) в ajax запрос вместо знаков вопроса?
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
@thisuserhatephp
Офлайн - losers Онлайн - lusers
Так ?
1
function getval(sel)
{
  let city = sel.value;
      let data = {
        city_id : city
      };
      $.ajax({
        type: "POST",
        url: `city.php?city=${city}`,
        data: data,
        success: function(html){
        	$("#pz").load(`city.php?city=${city}`);
        }
    });
};


2

function getval(sel)
{
  let city = sel.value;
      let data = {
        city: city
      };
      $.ajax({
        type: "GET",
        url: 'city.php',
        data: data,
        success: function(html){
        	$("#pz").load(`city.php?city=${city}`);
        }
    });
};




Лучше всего сменить POST на GET и удалить с url все после .php
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Делайте так:
<select onchange="getval(this);" name="city" id="city" required>
    <option value="1">один</option>
    <option value="2">два</option>
</select>

async function getval(sel) {
	var city = encodeURIComponent(sel.value);
	var response = await (await fetch('/city.php?city=' + city)).text();
	alert("Запрос успешно отправлен, ответ сервера:\n" + response);
}

На сервере в своем php-скрипите смотрите содержимое переменной $_GET['city'] там будет лежать город.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы