Не удалось запустить запрос AJAX - PullRequest
1 голос
/ 17 мая 2019

Я пытаюсь установить переменную сеанса в файле php с помощью вызова AJAX. Но я получаю неопределенную ошибку индекса.

Это код jquery:

$('.selectcpno li').click(function(){

            //Get the value
             var value = $(this).data("value");
            //Put the retrieved value into the hidden input
             $('input[name=cpnoselected]').val(value);


             $.ajax({
                type: "post",
                url: "../web/cpnoselected.php",
                dataType: "text",
                data:"{'cpno':'" +value+ "'}",
                success: function( data ){
                alert("hellosuccess");
                    document.getElementById("cpno").innerHTML=data;
               },
                error: function( jqXhr, textStatus, errorThrown ){
                alert(value);
                    console.log( errorThrown );
                    console.log( jqXhr );
                    console.log(textStatus);

                }
            });
        });

Вот что у меня в php файле:

<?php

 include("../config/config.php");
 include("../inc/functions.php");

 $cpnoselected=  $_POST['cpno'];
 $_SESSION['cpno']=$cpnoselected;
 echo $cpnoselected;
 ?>

Когда я запускаю его, я получаю неопределенный индекс: cpno в C: /...../ cpnoselected.php

Пожалуйста, помогите решить эту проблему

Ответы [ 4 ]

7 голосов
/ 17 мая 2019

Изменение

data:"{'cpno':'" +value+ "'}",// it needs to be object not string

К

data:{'cpno':value}, //now its object
2 голосов
/ 17 мая 2019

вы делаете правильный запрос AJAX, но публикуете данные, которые не в правильном формате. Вам необходимо отправить эти данные в виде объекта, но вы отправляете их в виде строкового значения, например, Ваш код: data: "{'cpno': '" + value + "'}"

Просто удалите двойную кавычку, как

 data:{'cpno':value}
1 голос
/ 17 мая 2019

пример использования isset

   if (isset($_POST['cpno'])) {
  echo "This var is set so I will print.";
}
0 голосов
/ 17 мая 2019

Вы получаете эту ошибку undefined index: cpno in C:/...../cpnoselected.php, потому что вы отправляете свои данные в виде строки, а не в виде JSON. Сделать это изменения,

$('.selectcpno li').click(function(){

            //Get the value
             var value = $(this).data("value");
            //Put the retrieved value into the hidden input
             $('input[name=cpnoselected]').val(value);


             $.ajax({
                type: "post",
                url: "../web/cpnoselected.php",
                dataType: "json",
                data:{'cpno':value},
                success: function( data ){
                alert("hellosuccess");
                    document.getElementById("cpno").innerHTML=data;
               },
                error: function( jqXhr, textStatus, errorThrown ){
                alert(value);
                    console.log( errorThrown );
                    console.log( jqXhr );
                    console.log(textStatus);

                }
            });
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...