Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ajaxyii将数组传递给操作_Ajax_Yii_Yii Events - Fatal编程技术网

使用ajaxyii将数组传递给操作

使用ajaxyii将数组传递给操作,ajax,yii,yii-events,Ajax,Yii,Yii Events,嗨,我是YII的新手,请帮我解决一个简单的问题。 我试图将一些值从js传递到action,然后将它们放入数据库。 我从教程中得到的大部分代码 public function actionInsert(){ $post = file_get_contents("php://input"); $data = CJSON::decode($post, true); $read = new Read(); $read->attributes = $data;

嗨,我是YII的新手,请帮我解决一个简单的问题。 我试图将一些值从js传递到action,然后将它们放入数据库。 我从教程中得到的大部分代码

public function actionInsert(){
    $post = file_get_contents("php://input");
    $data = CJSON::decode($post, true);
    $read = new Read();
    $read->attributes = $data;
    $response = array();

    $read->save();
}
然后我发送:

$.ajax({
            type: "POST",
            url: "/read/insert/",
            data: "name=imja&short_desc=korotkoe&author=avtor&image=photo",
            error: function (){
                 alert('Error');
            },
            success: function(data){

            alert('success');

            }
    });

但是我收到一个“错误”警报,没有任何内容进入数据库。

来自.ajax的值不会作为JSON数组提交,这些值应该只是在$\u POST数组中。我还喜欢返回类似“complete”的内容。尝试将代码更改为:

public function actionInsert(){
    $read = new Read();
    $read->attributes = $_POST;
    $response = array();
    $read->save();
    echo 'complete';
    die();
}
也可以从javascript端将其作为JSON数组发送:

var data = {
    name: 'imja',
    short_desc: 'korotkoe',
    author: 'avtor',
    image: 'photo'
};
$.ajax({
    type: "POST",
    url: "/read/insert/",
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify(data),
    error: function (){
         alert('Error');
    },
    success: function(data){
        alert('success');
    }
});
但是,即使这样做,apache也会看到头类型,并且仍然正确地填充$\u POST数组。所以它真的不需要


另外,如果您还没有在Chrome或Firefox上安装Firebug,那么您可以在控制台中看到实际的ajax调用。查看控制器中操作函数的错误。

在url do Yii::app->createUrl'read/insert'中,它确实有效!!!非常感谢。但问题是:我如何从控制器中得到的帖子中获取值?当我写$name=$\u POST['name']时;我得到了一个500英特的答案,问题解决了!谢谢