JQuery Ajax Post с данными не завершается - PullRequest
0 голосов
/ 23 мая 2019

У меня есть следующее, но, похоже, проблема с постданными, так как предупреждение не отображается. Как правильно создать постданные для включения выбранной опции?

HTML

<select id="reportTypeChosen" onchange="reportType()">
    <option value="1">Opt1</option>
    <option value="2">Opt2</option>
    <option value="3">Opt3</option>
</select>

SCRIPT

function reportType() {
    var sel = document.getElementById("reportTypeChosen");
    var choosenType = sel.options[sel.selectedIndex].value;
    var postdata = "{choice: " + choosenType + "}";
    $.post("setreporttype.php", function(postdata, status){
        alert("Data: " + data + "\nStatus: " + status);
    });
}

Это дает ошибку в консоли: данные не определены

Я также пробовал:

function reportType() {
    var sel = document.getElementById("reportTypeChosen");
    var choosenType = sel.options[sel.selectedIndex].value;
    $.post("setreporttype.php", function({choice: choosenType}, status){
        alert("Data: " + data + "\nStatus: " + status);
}

Это тоже не работает, но без ошибок.

UPDATE: постданные были в неправильном месте. Исправленная версия ниже:

function reportType() {
    var sel = document.getElementById("reportTypeChosen");
    var choosenType = sel.options[sel.selectedIndex].value;
    $.post("setreporttype.php", {choice: choosenType}, function(data, status){
 alert("Data: " + data + "\nStatus: " + status);
    });
}

1 Ответ

0 голосов
/ 23 мая 2019

Вы используете функцию post с двумя параметрами, URl и обратным вызовом об успешном завершении, поэтому вы отправляете пустое сообщение (хотя, пожалуйста, будьте более ясны в отношении отладки), а затем ищите данные, которые хотите отправить в ответе от обратного вызова.

Вы, вероятно, хотите это:

$.post({my-url}, {data-to-send}, function({data-from-server}){
  doStuff(data-from-server)
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...