2016-10-09 31 views
-1

AJAX可以正常工作,但$ _POST沒有值。

我曾嘗試:

  • $data = json_decode(file_get_contents('php://input'), true); & $post = json_decode($data);到storecart.php
  • 更改數據到'jCart=' + jData'
  • 刪除的數據類型(Jaromanda X)
  • 答案(Umakant鬃毛)

cart是對象的數組

的Javascript:

 $(document).ready(function(){ 
      $("#showcart").click(function(event){ 
       event.preventDefault(); 
       showcart(); 
       url = 'cart.php'; 
       $(location).attr("href",url); 
      }); 
     }); 

     function showcart(){ 
      var jData = JSON.stringify(cart); 
      $.ajax({ 
       url:"storecart.php", 
       type:"post", 
       data: {jCart : jData}, 
       datatype: "json", 
       success: function(data){ 
        console.log("SUCCESS") 
        console.log(jData); 
       }, 
       error: function(data){ 
        console.log("REDO") 
       } 
      });  
     } 

storecart.php:

<?php 
    if(isset($_POST['jCart'])){ 
     echo "Right"; 
    }else{ 
     echo "Wrong"; 
    } 
?> 

如何獲得$_POST接受json.stringify

SOLUTION:

解決:

我所做的只是補充說,有一個隱藏的價值

<form id = "postform" action = "cart.php" method = "post"> 
    <input type = "hidden" id="obj" name="obj" val=""> 
    <input type = "submit" value = "Show Cart" id = "showcart"> 
</form> 

在JavaScript形式:

$(document).ready(function(){ 
    $("#showcart").click(function(){ 
    var json = JSON.stringify(cart) 
    $('#obj').val(json); 
    $('#obj').submit(); 
    }); 
}); 

謝謝大家已經回答,但希望這有助於。

+1

'我曾嘗試:' - 你試過沒有** **設置'dataype: 「JSON」,' - 也看到http://stackoverflow.com/a/18867369/5053002 –

+1

^如果您希望從服務器獲取JSON,則無法只發送「正確」! – adeneo

+0

@Jaromanda X,第一個網點來自您提供的鏈接 –

回答

-2
$(document).ready(function(){ 
var data = {one:"one", two:"two", three:"three"}; 
var jsonData = JSON.stringify(data); 
    $("#clickme").click(function() { 
    $.ajax({ 
    url:"demo.php", 
    type:"POST", 
    data:{cart:jsonData}, 
    success:function(response){ 
     console.log(response); 
    }, error:function(err) { 
    console.log(err); 
} 

}) 
}); 
}); 

PHP

<?php 

if(isset($_POST['cart'])){ 
    echo "Right"; 
    }else{ 
    echo "Wrong"; 
    } 
?>