我正在使用我發現的用於在旅途中更改文本行(您單擊它並顯示輸入)的腳本。它在沒有對數據庫做任何事情的情況下工作正常,但是當我爲更新添加代碼時,它將更新數據庫,但在提交後不會刷新文本。現在我已經迷失了好幾個小時了,可能我錯過了一些非常基本的東西。內聯文本更改沒有在ajax請求上更新(但在數據庫中發生更改)
我的JS:
$.ajaxSetup({
url: '/ajax/nombreruta.php',
type: 'POST',
async: false,
timeout: 500
});
$('.editable').inlineEdit({
value: $.ajax({ data: { 'action': 'get' } }).responseText,
buttons: '',
cancelOnBlur: true,
save: function(event, data) {
var html = $.ajax({
data: { 'action': 'save', 'value': data.value }
}).responseText;
//alert("id: " + this.id);
return html === 'OK' ? true : false;
}
});
nombreruta.php:
<?php session_start();
$action = isset($_POST) && $_POST['action'] ? $_POST['action'] : 'get';
$value = isset($_POST) && $_POST['value'] ? $_POST['value'] : '';
include $_SERVER['DOCUMENT_ROOT'] ."/util-funciones.php";//for my db functions
$cnx=conectar();
$sel="select * from ruta where id_ruta='".$_SESSION['ruta']."'";
$field=mysql_query($sel, $cnx);
if($row=mysql_fetch_object($field)){
$data = $row->nombre;
}
switch ($action) {
// retrieve data
case 'get':
echo $data;
break;
// save data
case 'save':
if ($value != '') {
$sel="update ruta set nombre='".$value."' where id_ruta=".$_SESSION['ruta'];
mysql_query($sel,$cnx) or die(mysql_error());
$_SESSION['data'] = $value;
echo "OK";
} else {
echo "ERROR: no se han recibido valores.";
}
break;
// no action
default:
echo "ERROR: no se ha especificado accion.";
break;
}
螢火蟲讓我發現後,我更新我的文字,它返回OK,我刷新頁面後,就會顯示出更新的文本,但不是之前。我開始思考這種做法太麻煩,但這麼多小時後我覺得我從我的解決方案一步......
編輯:
我使用這個插件:http://yelotofu.com/2009/08/jquery-inline-edit-tutorial/
而我的HTML只是
<span class="editable">Text</span>
請還包括你的HTML。 –
和你正在使用的插件 –