【问题标题】:simple ajax request in yiiyii中的简单ajax请求
【发布时间】:2014-05-03 13:22:53
【问题描述】:

我对 yii 框架很陌生。我知道如何将 ajax 与核心 PHP 一起使用。我有一个输入数据需要通过 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 请求时,我总是收到“失败”消息。我是否需要创建自己的控制器文件而不是在 SiteController. M 甚至不知道我哪里出错了。

【问题讨论】:

    标签: ajax yii


    【解决方案1】:

    客户端是类似的,但你可能应该使用 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()-&gt;request-&gt;isAjaxRequest() 的 ajax 请求。

    然后做任何你需要做的事情来验证或操作。

    插入或拒绝,返回适当的错误消息以供查看。

    【讨论】:

      【解决方案2】:

      insertdata.php 文件是什么?在 Yii 中你只有一个输入文件——index.php。您需要在某个控制器中创建操作。

      您使用 ajax 的这种方式也是可以接受的,在某些情况下使用 ajaxLinks、ajaxButtons 会更好。

      【讨论】:

        【解决方案3】:

        谢谢,经过反复试验,我想通了。 使用此函数创建了一个名为 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); } 
         });
        

        像魅力一样工作:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-05-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多