在刷新页面之前,我似乎无法从我的 jEditable 表单中获取提交的值以显示在我的网站上。但是,它确实会正确更新MySQL数据库。我正在使用PHP和MySQL。
谁能解释一下我如何使用 jEditable 在不刷新页面的情况下就地更新?
PHP 操作页面
if($_POST["issue_edit"]){
mysql_query("UPDATE timeline SET comment='".$_POST["issue_edit"]."' WHERE ticket='".$_POST["id"]."' AND issue='1'");
echo $_POST["issue_edit"];
// header("location: ../?".$query."");
}
主页面
<script>
$(document).ready(function() {
$('.edit<?php echo $ticket["id"]; ?>').editable('http://www.4dcreative.co.uk/support/tickets/action/index.php', {
type : 'textarea',
cancel : 'Cancel',
submit : 'OK',
name : 'issue_edit',
onblur : 'ignore'
});
});
</script>
<label>Issue:</label><p class="edit<?php echo $ticket["id"]; ?>" id="<?php echo $ticket["id"]; ?>"><?php
while($timeline_stub = mysql_fetch_array($timeline)) {
if($timeline_stub["type"]=="issue"){
echo nl2br($timeline_stub["comment"]);
}
}
?></p>
我不希望输入的任何作为issue_edit
参数传递的文本都会丢失......
也许这是以前版本的 Jeditable 的行为?事实上,我遇到了一个类似但有些相反的问题,我有许多用户可以输入数字的字段,但我想用"格式化"值更新数字(例如"1,000.00"而不是"1000")。
要在不刷新的情况下更新页面 - 并且在 Jeditable 插件向指定的"提交 URL"发出请求后 - 您需要在调用 editable
插件函数时为 callback
选项参数提供一个函数。这是我自己的代码中的一个示例回调函数:
function (result) {
if (result.status == 'Success') {
thisAmountElement.className += ' success';
$(thisAmountElement).text(result.formattedAmount);
}
else
thisAmountElement.className += ' danger';
}
在提交 URL 处处理请求的代码返回具有 status
和 formattedAmount
属性的 JSON 对象。[formattedAmount
属性包含 Jeditable 提交的新金额,但使用与格式化页面上所有其他金额相同的服务器端代码进行格式化。