当前位置: 首页 > 面试题库 >

在CodeIgniter中检索JSON POST数据

仲孙经赋
2023-03-14
问题内容

我一直在尝试从我的php文件中检索JSON数据,这给了我很麻烦。这是我的代码

我的视图中的代码:

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中用于Ajax调用的一般方法:

JS:

post_array =
{
    "myvar" : "value1",
    "myvar2": "value2"
}

$.post(baseUrl + "/AjaxController/my_function", post_array,
    function(data)
    {
        var res = jQuery.parseJSON(data);
        alert(res.property);
    }

控制器:

public function my_function()
{
    $myvar = $this->input->post('myvar');
    $myvar2 = $this->input->post('myvar2');

    //Stuff

    echo json_encode($myobject);
}


 类似资料:
  • 问题内容: 我正在制作一个程序,可以从我创建的数据库中检索字段的输入数据/值。但是,当我运行它时,输出始终为null。不知道怎么了 这是我的代码: 在我的主班我有以下代码: 我不知道为什么我运行它时总是说null。 问题答案: 您实际上并没有在设置员中“设置”任何东西。 最重要的是:我对getter和setter的理解使您可以在getter中进行查询。

  • 我想在Firebase中根据Firebase本地服务器时间和日期保存数据,而不是本地系统日期,如果用户的移动电话日期错误,则可能是错误的。然后我想通过像SQL查询一样应用日期查询(给我两个日期之间的数据并添加特定的colmn)来检索它。我如何在使用Java的安卓系统中做到这一点呢?

  • SELECT 语句 是最常用的SQL语句了,用来索引一个或者多个表信息。 关键字(keyword) 作为SQL组成部分的字段,关键字不能作为表或者列的名字。 使用SELECT索引数据,必须至少给出两条信息,想要什么? 从什么地方获取? 检查单个列 SELECT prod_name FROM Products; 解释:使用SELECT 语句从 Products 表中检索一个名为prod_name

  • SELECT语句用于从表中检索数据,通常格式如下: SELECT what_to_select FROM which_table WHERE conditions_to_satisfy; what_to_select 表示你想看到的数据,可以是具体列,也可以是*(代表所有列)。 which_table 表示你要从哪个表中检索数据。 WHERE 是可选的,如果有的话,conditions_to_s

  • 实际上,我想向用户显示联机/脱机状态。我读过https://firebase.google.com/docs/firestore/solutions/presence并实现了来更新折扣时的实时数据库,但问题是当用户折扣时,Firestore中的数据不会更新。

  • 在本章中,我们将讨论如何使用Java Client API检索数据。假设有一个名为sample.csv的.csv文档,其中包含以下内容。 可以使用命令在核心-下对此数据编制索引。 以下是向Apache Solr索引添加文档的Java程序代码。将此代码保存在的文件中。 通过在终端中执行以下命令编译上述代码 - 执行上述命令后,将得到以下输出。