Я использую скрипт, который я нашел для изменения строки текста на ходу (вы нажимаете на нее, и ввод показывает).Он работает нормально, ничего не делая с базой данных, но когда я добавляю свой код для обновления, он обновит базу данных, но не обновит текст после отправки.Я полностью потерян, так как я уже несколько часов, может быть, я упускаю что-то очень простое.
Мой 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;
}
Firebug показывает мне, что после того, как я обновляю свой текст, он возвращает OK, и после того, как я обновляю сайт, он покажет обновленный текст, но не раньше.Я начал думать, что этот подход слишком хлопотный, но после стольких часов я чувствую, что я в шаге от своего решения ...
РЕДАКТИРОВАТЬ:
Я использую этот плагин: http://yelotofu.com/2009/08/jquery-inline-edit-tutorial/
И мой HTML просто
<span class="editable">Text</span>