通过ajax发送数据到控制器yii
首先感谢大家的帮助,这非常有用。我以yii开头,我有点失落了。通过ajax发送数据到控制器yii
我已经创建了一个jQuery脚本,用于验证表单,然后将其发送给我的控制器以使用它并保存在数据库中。
但我做错了我认为我不能连接我的控制器。下面是代码:
jQuery脚本(毕竟验证的东西,这些变量都很好):
$.ajax({
type: "POST",
url: "<?php echo Yii::app()->request->baseUrl; ?>/proceso/guardarproceso",
data:
{
post_nombre: nombre,
post_empresa: empresa,
post_fechaI: fechaI,
post_fechaF: fechaF,
post_descripcion: descripcion
},
success: function(result)
{
alert(result);
}
});
而且我的控制器ProcesoController
:
public function actionGuardarProceso(){
$nombre = $_POST['post_nombre'];
$empresa = $_POST['post_empresa'];
$fechaI = $_POST['post_fechaI'];
$fechaF = $_POST['post_fechaF'];
$descripcion = $_POST['post_descripcion'];
echo $nombre;
}
我不是与DB工作尚未,我只想看看我是否做得很好,并且alert(result)
显示我的内容为$nombre
,但不是该提示会显示视图的所有html代码(是的,所有的xD)
我已经做了太多:
public function accessRules()
{
return array(
array(
'allow',
'actions'=>array('index','guardarproceso'),
'users'=>array('*'),
),
);
}
但没有......
任何cuold帮助我或者给我一些想法?谢谢大家再次
如果AJAX或jQuery的结果打印的页面其通常是错误的HTML在网址中。 检查你的网络跳转,看看它是否去你想要的控制器操作。 baseurl比createUrl慢。尝试Yii :: app() - > createUrl并编辑它,直到它到达正确的目的地..但我的理论的基础是,你的网址是不正确的。
是的,这是错误,网址没有很好地定义。我设定了一条绝对路径,感谢所有的帮助 – 2014-10-07 18:27:58
1错误:url: "<?php echo Yii::app()->request->baseUrl; ?>/proceso/guardarproceso",
代之以guardarproceso
guardarProceso
第二个错误:
$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});
dataType
是丢失;它应该是json
读到这里http://api.jquery.com/jquery.post/
此外,在控制器动作actionGuardarProceso
,用途:
echo json_encode(array('key'=>$nombre)); exit
感谢您的帮助,我已经做了这些改变,但它仍然无法正常工作 – 2014-10-06 20:08:36
$.ajax({
type: "POST",
url: "<?php echo Yii::app()->request->baseUrl; ?>/proceso/guardarproceso",
data:
{
post_nombre: nombre,
post_empresa: empresa,
post_fechaI: fechaI,
post_fechaF: fechaF,
post_descripcion: descripcion
},
success: function(result) {
alert(result);
},
error:function(jqXHR, textStatus, errorThrown){
alert('error::'+errorThrown);
}
});
第一次尝试这样你会得到后的数据或不
public function actionGuardarProceso(){
echo "<pre>";
print_r($_POST);
exit;
}
如果没有得到任何数据,尝试用你的模型
public function actionGuardarProceso(){
$model = new modelname;
echo $_POST['modelname']['post_nombre'];
exit;
}
别的尝试用以下
public function actionGuardarProceso(){
echo Yii::app()->request->getPost("post_nombre");
exit;
}
我希望你会ge t现在从上面的任何方法
在创建和更新密钥中添加操作,并为function'actions'=> array('create','update','guardarProceso')给出正确的名称, – 2014-10-07 07:29:56