javascript - jEditable 响应处理问题

标签 javascript json jeditable

我有一堆看起来像这样的 html - 这里只显示一个,因为它就是所需要的:

<tr>
 <td>Name of Organisation:</td>
 <td class="edtext" id="organisation"><?=$aRes[0]['organisation']?></td>
</tr>

在页面的头部我有这个:

$(function() {
    $(".edtext").editable("./editHandler/WRITE.update.php?uaID=<?=$uaID?>", {
        event       : 'dblclick',
        dataType    : "json",
        placeholder : '',
        indicator   : 'Saving...',
        cssclass    : 'editable',
        submit      : 'Save',
        cancel      : 'Cancel',
    });
});

我可以通过双击然后编辑我已为其指定 id="organization"的 td 字段,成功地将内容发送到数据库中,就可以了。

在处理这个问题的 php 后端中,直接在运行良好的 DB 函数之后,我有:

header('Content-type: application/json');

(截取数据库更新代码 - 它工作正常)

$report = array();
$report['organisation'] = $userInput;
$report['result'] = "&#10004;";
echo json_encode($report);

同一个 php 的 header 设置为:

因此,一旦将输入并保存到可编辑表格单元格中的文本输入到数据库中,上面的内容就会发送回前端(“Hello World”是输入的示例文本):

{"organisation":"Hello World","result":"&#10004;"}

然后在进行编辑的 td 单元格中显示的内容是:

{"organisation":"Hello World","result":"✔"}

这不是我们想要的。勾号是 应该是的,但我的意思是我希望显示“Hello World”部分(当然不带引号)并将结果显示在页面其他位置带有 id="result"的 span 或 div。

我读到我需要使用 jEditable callback 选项,但是我找不到任何如何执行此操作的示例。我对 JS 不太有信心,希望有人能把我推向正确的方向。欢迎使用功能示例。

顺便说一句,我需要能够将这段 JS 用于多个文本字段,而不需要为每个需要编辑访问权限的数据单元格提供单独的 JS 条目。

最佳答案

我通过添加解决了问题:

        callback    : function() {
            location.reload();
        },

进入:

    $(".edtext").editable("./editHandler/WRITE.update.php?uaID=<?=$uaID?>", {
        event       : 'dblclick',
        dataType    : "json",
        placeholder : '',
        indicator   : 'Saving...',
        cssclass    : 'editable',
        submit      : 'Save',
        cancel      : 'Cancel',
    });
});

部分,最终结果是:

$(".edtext").editable("./editHandler/WRITE.<?=$appKey?>.php?uaID=<?=$uaID?>", {
    callback    : function() {
        location.reload();
    },
    event       : 'dblclick',
    placeholder : '',
    indicator   : 'Saving...',
    cssclass    : 'editable',
    submit      : 'Save',
    cancel      : 'Cancel',
});

因为看似垃圾的输出并非来自数据库中实际保存的内容,所以成功发布后的新加载意味着页面按照预期清晰地显示。

这不是一个很好的解决办法,但它有效并且不依赖于讨厌的黑客。

关于javascript - jEditable 响应处理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39219148/

相关文章:

javascript - JS定时器在IE8中显示NaN

sql - Postgresql:将连接查询的行合并到新的列数组中

jquery-plugins - DataTable + JEditable + AutoComplete(BAssistance) + 服务器端处理

javascript - AngularJs 的 ng-options - 澄清吗?

javascript - 访问 iframe 中的链接后调整 fancybox 宽度

javascript - 如何删除未使用的 javascript 函数、变量和元素

jquery - 如何让 Jeditable 使用 Bootstrap 按钮类来确定/取消?

sql - 数组json将元素拆分为列postgres

android - PolymorphicJsonAdapterFactory 缺少标签

php - 使用户能够双击表格文本来输入更改;数据库根据这些更改进行更新