Невозможно отправить несколько параметров данных с помощью jQuery AJAX - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь отправить значения на другую страницу, используя Ajax

Но я не могу получить эти значения, я не знаю, где я ошибаюсь

вот мой код

<script type="text/javascript">
function get_more_info() { // Call to ajax function
var fval = document.getElementById('get_usecompny').value;
var dataString1 = "fval="+fval;
alert(fval);
var sval = document.getElementById('country').value;
var dataString2 = "sval="+sval;
alert(sval);

$.ajax({
    type: "POST",
    url: "getmoreinfo.php", // Name of the php files
    data: "{'data1':'" + dataString1+ "', 'data2':'" + dataString2+ "'}",
    success: function(html)
    {
        $("#get_more_info_dt").html(html);
    }
  });
 }
</script>

в оповещении я получаю эти значения, но на странице 'getmoreinfo.php' я не получаю никаких значений

вот мой код страницы 'getmoreinfo.php'

    if ($_POST) {
      $country = $_POST['fval'];
      $country1 = $_POST['sval'];

      echo  $country1;
      echo "<br>";
      echo  $country;   
      }

Пожалуйста, дайте мне знать, где я неправ.извините за плохой английский

Ответы [ 3 ]

0 голосов
/ 05 декабря 2018

Нет необходимости создавать переменные 'dataString'.Вы можете представить данные в виде объекта:

$.ajax({
    ...
    data: {
        'fval': fval,
        'sval': sval
    },
    ...
});

В вашем PHP вы можете получить доступ к данным следующим образом:

$country = $_POST['fval'];
$country1 = $_POST['sval'];
0 голосов
/ 05 декабря 2018

Свойство «данные» из объекта JQuery ajax должно быть простым объектом данных.JQuery автоматически анализирует объект как параметры по запросу:

$.ajax({
    type: "POST",
    url: "getmoreinfo.php",
    data: {
        fval: document.getElementById('get_usecompny').value,
        sval: document.getElementById('country').value
    },
    success: function(html) {
        $("#get_more_info_dt").html(html);
    }
});
0 голосов
/ 05 декабря 2018

Вы передаете параметры с другими именами, чем пытаетесь их прочитать.

Ваш параметр data: может быть выполнен намного проще, как показано ниже:

<script type="text/javascript">
function get_more_info() { // Call to ajax function
    var fval = document.getElementById('get_usecompny').value;
    var sval = document.getElementById('country').value;

    $.ajax({
        type: "POST",
        url: "getmoreinfo.php", // Name of the php files
        data: {fval: fval, sval: sval},
        success: function(html)
        {
            $("#get_more_info_dt").html(html);
        }
      });
}
</script>

Или вырезатьа также промежуточные переменные и используйте метод jquery для получения данных от элемента с id, подобным этому.

<script type="text/javascript">
function get_more_info() { // Call to ajax function


    $.ajax({
        type: "POST",
        url: "getmoreinfo.php", // Name of the php files
        data: { fval: $("#get_usecompny").val(), 
                sval: $("#country").val()
              },
        success: function(html)
        {
            $("#get_more_info_dt").html(html);
        }
      });
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...