javascript - 我将如何在 Yii 框架中编写 ajax 按钮

标签 javascript ajax button yii submit

我目前是 Yii 框架的新手,我想知道是否有人有很好的 Javascript 示例或经验来帮助我创建 ajax 提交按钮。这个提交按钮的全部目的是收藏当前页面并将数据发送到/需要。按钮的标签必须根据数据库中的信息进行更改(按钮标签 -> 收藏或不收藏)。

这是我的基本按钮的当前功能。我想做下一步并开始使用ajax。如果有人有兴趣教新手。我愿意迎接挑战。

<div>
    <?php echo CHtml::button('Favorite', array('submit'=>array('user/favoritePage', 'playerId'=>$player->id, 'pageId'=>$page->id, 'bool'=>'FALSE'))); ?>
</div>

最佳答案

$toggle = $model->is_favourite? "false": "true";

$actionUrl = Yii::app()->createUrl('user/favoritePage', array(
    'playerId'=>$player->id, 'pageId'=>$page->id
));


//render input type=submit with id=favourite-button
echo CHtml::ajaxSubmitButton(
    ($model->is_favourite? 'Favourite' : 'Un-Favourite'), //label button
    $actionUrl,
    array(
        'data' => 'js:{bool: $("#favourite-button").attr("toggle")}', //get current status of button (favourite or not) as param to post
        'success'=>'js:function(data){
//ajax success, update label and status of button for next time
        data = $.parseJSON(data);
        $("#favourite-button").val(data["label"]);
        $("#favourite-button").attr("toggle", data["toggle"]);
        }'

    ),
    array(
        'id'        => 'favourite-button', // set id for button
        'toggle'    => $toggle // set attribute to hold favourite status, or you can set it on hidden field instead and then update the selector on ajax success 
    )
);

在 Controller 用户上

public function actionfavoritePage(){
if( Yii::app()->request->isAjaxRequest(){ // this check is not necessary if you write this function just for ajax call only

$playerId- = $_GET['playerId']; // get query string
$pageId- = $_GET['pageId']; // get query string
$bool = $_POST['bool']; // get status true OR false 

//do your stuff to save status here
...


//then return result as json
echo json_encode(array('label' => '[your new button label]', 'toggle'=>$bool?'false':'true'));

exit();
})


}

关于javascript - 我将如何在 Yii 框架中编写 ajax 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18130540/

相关文章:

javascript - 解决任何状态下的 UI-Router

javascript - 将所见即所得编辑器集成到最佳文本区域

php - 搜索结果破坏了 Bootstrap 中的导航栏

php - jQuery/AJAX 登录表单在输入时提交

Android 按钮背景颜色

javascript - 如何在 javascript 或 jquery 中渲染 json 对象的内部数组

javascript - 阻止 jQuery 将整个页面返回到我的 div 中

Android Material float Action 按钮展开菜单效果

java - 一旦标题栏消失,按钮选框就会停止(帮助)

javascript - 绑定(bind)到按键在 IE8 及更早版本中不起作用