在X-Editable中通过Ajax提交数据

时间:2016-06-17 08:10:33

标签: php jquery html ajax x-editable

我正在尝试使用X-Editable通过Ajax提交数据,并且无法运行url参数中定义的php脚本。实际上,我从工作中得到了基本的例子:

HTML

<a href="#" id="username" data-type="text" data-pk="1" data-name="username" data-original-title="Enter username" class="editable">superuser123</a>

JS:

$('#username').editable({
    url: 'post.php',
    type: 'text',
    pk: 1,
    name: 'username',
    title: 'Enter username'
});

这是有效的(post.php已执行)。但现在我希望有更多可编辑的字段,并在按钮点击时运行它们。这是我的HTML(我正在使用Smarty):

{foreach from=$categories key="category_key" item="category_item"}
<tr>
    <th scope="row">{$category_key + 1}</th>
    <td>
        <span  id="edit-button-{$category_key + 1}" data-pk="1" data-original-title="Edit category name"  data-toggle="#edit">
            {$category_item["name"]}
        </span>
        <button  class="btn edit"><span class="glyphicon glyphicon-pencil"></span></button>
    <td>0</td>
</tr>
{/foreach}

及相关的Javascript:

$(document).ready(function() {
    //toggle `popup` / `inline` mode
    $.fn.editable.defaults.mode = 'inline';     

    $('.edit').click(function(e){    
        e.stopPropagation();
        var button = $(this).prev('span').attr('id');

        $('#'+button).editable('toggle',{
            url: 'post.php',
            type: 'text',
            pk: 1,
            name: button,
            title: 'Edit category'                   
        });  
    });
});

问题是,这会创建可编辑的字段,但它不会调用post.php脚本(与第一个示例不同)。我做错了什么?

1 个答案:

答案 0 :(得分:3)

我通过下一步解决了这个问题:

$('#'+button).editable({
                           url: 'post.php',
                           type: 'text',
                           name: button,
                           title: 'Edit category',
                           ajaxOptions:{
                            type:'post'
                           } ,
                          //  success: function(data) {
                          //   alert(data);
                          // }, 
      });