2016-08-30 3 views
1

У меня есть куча HTML, который выглядит, как это - только показывая один здесь, как это все, что нужно:jEditable обработка ответа вопросы

<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', 
    }); 
}); 

Я могу успешно отправить материал в базу данных, дважды щелкнув, а затем отредактировав поле td, которое я дал id = "organization", просто отлично.

В бэкэнде битого PHP, который имеет дело с этим, непосредственно после функции DB, которая работает хорошо, у меня есть:

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

(надрез кода обновления базы данных - это работает отлично)

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

Тот же php имеет заголовок, заданный для:

Итак, как только текст, который был введен и сохранен в редактируемой ячейке таблицы, вводится в базу данных, вышеуказанное отправляет обратно в интерфейс («Привет» Мир»является примером введенный текст):

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

Тогда что отображается в ячейке тд, что редактирование имело место в это:

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

Который не то, что хотел. Тик - это то, что должно быть &#10004;, но я хочу сказать, что я хочу показать часть «Hello World» (без кавычек, конечно), и результат будет отображаться в промежутке или div с id = "result" , в другом месте на странице.

Я читал, что мне нужно использовать опцию jEditable callback, однако я не могу найти пример того, как это сделать. Я не очень уверен в JS и буду признателен, если кто-то будет меня трогать в правильном направлении. Функциональные примеры приветствуются.

Кстати, мне нужно иметь возможность использовать этот бит JS для нескольких текстовых полей и не иметь отдельную запись JS для каждой ячейки данных, для которой требуется доступ для редактирования.

ответ

0

Я зафиксировал проблему, добавив:

 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', 
}); 

Поскольку мусор ищет выход не исходя из того, что фактически сохраняется в БД, новая загрузка после успешной публикации означает, что страница отображается чисто, как хряков.

Это не замечательная работа, но она работает и не полагается на неприятные хаки.

Смежные вопросы