Member 8057273 Ответов: 0

Частичное обновление списка с помощью AJAX


У меня есть список из базы данных, и я хочу реализовать функцию редактирования, где при onclicking столбца таблицы столбец становится редактируемым, а при щелчке из столбца значение обновляется.
Для этой цели я использовал AJAX. Мой код выглядит следующим образом:
Page1.php
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script>
function showEdit(editableObj) 
{
 $(editableObj).css("background","#FFF");
} 
function saveToDB(editableObj,column,id) 
{
 $.ajax(
 {
  url: "page2.php",
  type: "POST",
  data:'column='+column+'&editval='+editableObj.innerHTML+'&id='+id,
  success: function(data)
  {
   $(editableObj).css("background","#FDFDFD");
  }        
 });
}
</script>

Столбец моей таблицы выглядит следующим образом:
<td contenteditable="true" onBlur="saveToDB(this, 'exmid','<?php echo $p0; ?>')"

         onClick="showEdit(this);"><?php echo $p3 ?>

Примечание: $p0 содержит серийный номер строки из таблицы базы данных mysql, а $p3 содержит отображаемый текст.
Код для page2.php является:
<?php
include_once 'includes/db_connect.php';
?>
<?php
$result = mysql_query("UPDATE examlist1 set " . $_POST["column"] . " =     '".$_POST["editval"]."' WHERE  sno=".$_POST["id"]);
?>

Проблема: Когда я нажимаю на колонку, она становится редактируемой. Использование alert () внутри saveToDB() Это первый раз, когда я сам пытаюсь использовать ajax в php-коде.
Плз подскажите, в чем проблема и каково ее решение. Код реализуется на сервере на базе Linux размещенном в Godaddy с использованием PHP 5.4
Кроме того, я хотел бы установить цвет фона на fail. Как написать его внутри блока ajax?

Что я уже пробовал:

Я проверил, что функция вызывается при щелчке из столбца, а также значения столбца и идентификатора верны.
Затем я попробовал функцию alert () внутри $.ajax, но она не была вызвана. Я не уверен, работает ли ajax или нет.

Member 8057273

Привет. Я всегда использую параметризованный quey, но здесь имя столбца должно было передаваться динамически. Я имею в виду, что перед " = " можно ли передать параметр?

Richard Deeming

Нет, вы не можете использовать параметр для имени таблицы или столбца.

Но вы также не должны слепо принимать любое значение, которое пользователь отправляет на вашу страницу. У вас должен быть список допустимых имен столбцов и убедитесь, что имя столбца существует в этом списке.

0 Ответов