将JSON值发送给PHP而不是woking

时间:2017-08-06 09:51:44

标签: php jquery json ajax

我尝试使用JQuery使用Ajax但我的代码无效。

JQuery代码:

var prvdatas = {
            "prvpname": "<?php echo $_GET['u']; ?>",
            "prvlogname": "<?php echo $_SESSION['usernamelg']; ?>",
            "prvtype": "get",
            "prvcat": "post"
            };
    var  aaaa = JSON.stringify(prvdatas);
       $.ajax({
         url : "/php/privacy.php",
         type: "POST",
         data : aaaa,
         success: function(response){
            $('#prvstatus').html(response);
            $('.prvmodal *').prop("disabled", false);
         }
    });

PHP代码:

<?php
    $prvpname = $_POST['prvpname'];
    $prvlogname = $_POST['prvlogname'];
    $prvtype = $_POST['prvtype'];
    $prvcat = $_POST['prvcat'];
    $prvnum = $_POST['prvnum'];
    $prvval = $_POST['prvval'];

    echo $prvpname . $prvlogname . $prvtype . $prvcat . $prvnum . $prvval;  
?>

如何解决这个问题。如果我使用echo "sometext";,它在PHP中工作正常。

3 个答案:

答案 0 :(得分:1)

只需删除数据中设置的此行JSON.stringify(prvdatas). and prvdatas`:prvdatas

以下代码:

         var prvdatas = {
                "prvpname": "<?php echo $_GET['u']; ?>",
                "prvlogname": "<?php echo $_SESSION['usernamelg']; ?>",
                "prvtype": "get",
                "prvcat": "post"
                };

           $.ajax({
             url : "/php/privacy.php",
             type: "POST",
             data : prvdatas,
             success: function(response){
                $('#prvstatus').html(response);
                $('.prvmodal *').prop("disabled", false);
             }
        });

答案 1 :(得分:1)

只需替换:

data : aaaa,

with:

 data: {
   prvpname: "<?php echo $_GET['u']; ?>",
   prvlogname: "<?php echo $_SESSION['usernamelg']; ?>",
   prvtype: "get",
   prvcat: "post"
 }

你的代码就像没有任何额外的变量一样:

$.ajax({
   url : "/php/privacy.php",
   type: "POST",
   data : {
       prvpname: "<?php echo $_GET['u']; ?>",
       prvlogname: "<?php echo $_SESSION['usernamelg']; ?>",
       prvtype: "get",
       prvcat: "post"
   },
   success: function(response){
      $('#prvstatus').html(response);
      $('.prvmodal *').prop("disabled", false);
   }
});

答案 2 :(得分:1)

这是因为$_POST['prvnum']请求中的$_POST['prvval']POST 未定义。此外,您不必将JavaScript对象转换为字符串,直接在AJAX请求中使用prvdatas

var prvdatas = {
    "prvpname": "<?php echo $_GET['u']; ?>",
    "prvlogname": "<?php echo $_SESSION['usernamelg']; ?>",
    "prvtype": "get",
    "prvcat": "post",
    "prvnum": "SOMEVALUE",    
    "prvval": "SOMEVALUE"
};
$.ajax({
    url : "/php/privacy.php",
    type: "POST",
    data : prvdatas,
    success: function(response){
        $('#prvstatus').html(response);
        $('.prvmodal *').prop("disabled", false);
    }
});