私は、移動中のテキスト行を変更するために見つけたスクリプトを使用しています(クリックすると入力が表示されます)。データベースに何もせずに正常に動作しますが、更新用にコードを追加するとDBが更新されますが、送信後にテキストは更新されません。私は何時間もそれをしてきたので、今は完全に失われています。ajaxリクエストでインラインテキスト変更が更新されない(DB上の変更)
マイ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を返すことを私に示して、私はサイトを更新した後、それが更新されたテキストが表示されますが、これまでにない私が始めたこのアプローチを考えることはあまり面倒ですが、私は私の解決策から一歩だようなので、多くの時間後に私は感じて...
EDIT:
私はこのプラグインを使用しています:http://yelotofu.com/2009/08/jquery-inline-edit-tutorial/
をそして、私のHTMLはあなたのコードは私のために正常に動作だけ
<span class="editable">Text</span>
あなたのHTMLも含めてください。 –
そして、あなたは –