我一直在尝试从我的PHP文件中检索JSON数据,但这让我很困扰。这是我的代码
我VIEW中的代码:
var productDetails = {'id':ISBNNumber,'qty':finalqty,'price':finalprice,'name':bookTitle};
var base_url = '<?php echo site_url() ?>';
$.ajax({
url: "<?php echo base_url() ?>index.php/user/Add_to_cart/addProductsToCart",
type: 'POST',
data:productDetails,
dataType:'JSON',
});
尝试在我的控制器中检索:
echo $this->input->post("productDetails");
无输出。
以下是我的标题:
Remote Address:[::1]:80
Request URL:http://localhost/CI/index.php/user/Add_to_cart/addProductsToCart
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8,fr;q=0.6
Connection:keep-alive
Content-Length:52
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Cookie:ci_session=3E5SPro57IrJJkjs2feMNlmMrTqEXrTNN8UyEfleeothNnHwNxuCZDSx4a7cJZGjj7fyr2KLpj%2BPNJeGRSzSPVmcFHVEdhSk4D47ziOl4eZcTUAZlQrWa3EYIeQJVWxMpiGZS26MEfbSXNmfel9e8TcsJTreZHipvfisrJovbXEAW4Uv%2BwrJRep1KCi1MMaDCVJb9UEinRVcDtYe%2F86jhn7kOj4kraVmVzx%2FsOaO0rAxLyAUtez%2Feaa4zBwpN3Td153sAoIb3WxVHoEj2oKyH5prVHigbIhIBR6XZqjBkM6hjBuoD2OSZ2wgLbp9DEENMoqui4WYyHROBuS2DYiJajblcS0KiFga5k%2FQOODvE7p6n%2BozN5ciDliVjJ4PnJ5PD1GaPEmec5%2FbQSlOHYWZk%2F2Blzw3Nw0EtLL7wKDzzQY%3Df645c36bb3548eb8de915b73f8763d97a47783ce
Host:localhost
Origin:http://localhost
Referer:http://localhost/CI/index.php/user/view_available_books/viewAvailableBooks/5
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36
X-Requested-With:XMLHttpRequest
**Form Dataview** sourceview URL encoded
id:234
qty:1
price:0.00
name:dasdadsd2q3e!@!@@
我在开发者工具中能看到的响应:
Array
(
[id] => 234
[qty] => 1
[price] => 0.00
[name] => dasdadsd2q3e!@!@@
)
但在浏览器中,输出为空。我已经尝试解决了4个小时以上,但徒劳无功。
print_r($_POST); // outputs nothing
echo $data = file_get_contents('php://input'); //outputs nothing
echo $id = $this->input->post('productDetails');// outputs nothing
我的视角代码:
<script>
$('#addtoCart').on('click',function(event){
event.preventDefault();
$(this).attr('disabled',"disabled");
finalprice = $.trim($('#price').val());
finalqty = $.trim($('#quantity').val());
var productDetails = JSON.stringify({'id':ISBNNumber,'qty':finalqty,'price':finalprice,'name':bookTitle});
var base_url = '<?php echo site_url() ?>';
// console.log($);
$.ajax({
url: "<?php echo base_url() ?>index.php/user/Add_to_cart/addProductsToCart",
type: 'POST',
contentType: "application/json; charset=utf-8",
data:productDetails,
dataType:'html',
});
});
</script>
控制器代码:
function addProductsToCart(){
var_dump(json_decode(file_get_contents("php://input")));
print_r($_POST);
// $data = json_decode($_POST["productDetails"]);
// var_dump($data);
// echo $data = file_get_contents('php://input');
// print_r(json_decode($data));
// $id = $this->input->post('id');
// $qty = $this
}
CI
不知道如何将JSON
处理成$this->input->post()
。你需要手动处理它。请查看下面的答案以获取解释。 - jimasun