jEditable 响应处理问题

jEditable response handling issues

我有一堆 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="organisation" 的 td 字段成功地将东西发送到数据库中,就好了。

在处理此问题的 php 的后端位中,直接在工作正常的 DB 函数之后,我有:

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

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

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

同一个 php 的 header 设置为:

因此,一旦将输入并保存到 editable table 单元格中的文本输入到数据库中,上面的内容将发送回前端('Hello World' 是输入的示例文本):

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

那么发生编辑的td单元格中显示的是:

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

这不是我们想要的。勾号是 &#10004; 应该是什么,但我的意思是我希望 "Hello World" 部分显示(当然没有引号)并且结果显示在跨度或 div 与 id="result",在页面的其他地方。

我读到我需要使用 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',
});

因为看似垃圾的输出并非来自实际保存在数据库中的内容,所以成功后的新加载 post 意味着页面显示如预期的那样干净。

这不是一个很好的解决方案,但它可以工作并且不依赖于讨厌的黑客。