无法运行AJAX请求

时间:2019-05-17 05:26:21

标签: php jquery ajax

我正在尝试通过AJAX调用在php文件中设置会话变量。但是我收到未定义的索引错误。

这是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;
 ?>

当我运行它时,我得到未定义的索引:C:/...../ cpnoselected.php中的cpno

请帮助解决该问题

4 个答案:

答案 0 :(得分:7)

更改

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

收件人

data:{'cpno':value}, //now its object

答案 1 :(得分:2)

您正在使ajax请求正确,但是您发布的数据格式不正确。 您需要将该数据作为对象发送,但是您将其作为字符串值发送,例如您的代码:data:“ {'cpno':'” + value +“'}”

只需从中删除双引号

 data:{'cpno':value}

答案 2 :(得分:1)

使用isset示例

   if (isset($_POST['cpno'])) {
  echo "This var is set so I will print.";
}

答案 3 :(得分:0)

您收到此错误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);

                }
            });
        });