我对yii框架很新。我知道如何在核心PHP中使用ajax。我有一个输入数据需要通过ajax插入到数据库中。
这是我的HTML代码
<div id="ins-list">
<input type="text" id="ins-text"/>
<input type="submit" id="add-list" value="Add"/>
</div>
ajax代码:
$("#add-list").click(function(){
var task=$("#ins-text").val();
var data1 = 'dval=' + task;
$.ajax({
type: 'POST',
url: 'insertdata.php',
data: data1,
success: function (da)
{
alert(da);
}
});
我知道这不是ajax如何在yii中工作。请帮助我了解我需要创建的文件以及ajax工作的文件夹。
我根据建议对代码进行了更改。
ajax代码:
var data1 = 'dval=' + task;
$.ajax({
type: 'POST',
url: 'createUrl('AjaxRequest'); ?>',
data: data1,
success: function(msg){
alert("Sucess"+msg); },
error: function(err){
alert("failure"+err); }
});
我在SiteController中创建了一个控制器动作:
public function actionAjaxRequest()
{
if(isset($_POST['dval'])
$val1 = $_POST['dval'];
echo "works";
Yii::app()->end();
}
现在当发送ajax请求时,我总是得到&#34;失败&#34;信息。我是否需要创建自己的控制器文件,而不是在SiteController中放置操作。我甚至不确定我哪里出错了。
答案 0 :(得分:2)
客户端类似,但您应该使用yii ajax函数。
CHtml::ajax()
- http://www.yiiframework.com/doc/api/1.1/CHtml#ajax-detail
CHtml::ajaxLink()
- http://www.yiiframework.com/doc/api/1.1/CHtml#ajaxLink-detail
CHtml::ajaxButton()
- http://www.yiiframework.com/doc/api/1.1/CHtml#ajaxButton-detail
这些将有助于启动ajax进程,当您确定在ajax中使用的url时,传递控制器和要使用的操作。
然后在该控制器内部,使用Yii::app()->request->isAjaxRequest()
检查您是否收到了ajax请求。
然后做任何你需要做的事情来验证或操纵。
插入或拒绝,将相应的错误消息返回视图。
答案 1 :(得分:1)
什么是insertdata.php
档案?在Yii中,您只有一个输入文件 - index.php。您需要在某个控制器中创建操作。
这种方式你使用ajax也是可以接受的,在某些情况下最好使用ajaxLinks,ajaxButtons。
答案 2 :(得分:0)
谢谢我在经过一些试验和错误后想出来了。 使用此函数创建了一个名为MyController的新控制器文件:
public function actionAjaxRequest()
{
if(isset($_POST['dval'])
{
$val1 = $_POST['dval'];
echo "works";
}
Yii::app()->end();
}
在我的ajax请求中,我有以下内容:
var data1 = 'dval=' + task;
$.ajax({
type: "POST",
url: "<?php echo Yii::app()->createUrl('My/AjaxRequest'); ?>",
data: data1,
success: function(msg){
alert("Success "+msg); },
error: function(err){
alert("failure "+err); }
});
像魅力一样工作:)