간단한 웹 응용 프로그램을 만들기위한 자습서를 따르고 있으며 편집을 위해 jeditable을 사용하고 있습니다.Jeditable 새 값이 데이터베이스에 저장되지 않습니다.
새로운 값이 데이터베이스에 저장되지 않는다는 점을 제외하면 모든 것이 정상적으로 작동합니다.
bindAllTabs("#list li span");
: 내 index.php를이이
UPDATE list_items
SET ListText='Test123'
WHERE ListItemID=''
LIMIT 1
: MySQL의 로그는 다음과 같이 실행되는 문을 보여줍니다 때문에 "listItemID은"통과하지 않는 것을 믿고 날 리드
이 내 JS 파일에 있습니다 : 난 내 lists.php이이
function bindAllTabs(editableTarget) {
// CLICK-TO-EDIT on list items
$(editableTarget).editable("db-interaction/lists.php", {
id : 'listItemID',
indicator : 'Saving...',
tooltip : 'Double-click to edit...',
event : 'dblclick',
submit : 'Save',
submitdata: {action : "update"}
});
}
<?php
session_start();
include_once "../inc/constants.inc.php";
include_once "../inc/class.lists.inc.php";
if(!empty($_POST['action'])
&& isset($_SESSION['LoggedIn'])
&& $_SESSION['LoggedIn']==1)
{
$listObj = new ColoredListsItems();
switch($_POST['action'])
{
case 'add':
echo $listObj->addListItem();
break;
case 'update':
$listObj->updateListItem();
break;
case 'sort':
$listObj->changeListItemPosition();
break;
case 'color':
echo $listObj->changeListItemColor();
break;
case 'done':
echo $listObj->toggleListItemDone();
break;
case 'delete':
echo $listObj->deleteListItem();
break;
default:
header("Location: /");
break;
}
}
else
{
header("Location: /");
exit;
}
?>
다음이 class.lists.inc.php에 5,:
public function updateListItem()
{
$listItemID = $_POST['listItemID'];
$newValue = strip_tags(urldecode(trim($_POST["value"])), WHITELIST);
$sql = "UPDATE list_items
SET ListText=:text
WHERE ListItemID=:id
LIMIT 1";
if($stmt = $this->_db->prepare($sql)) {
$stmt->bindParam(':text', $newValue, PDO::PARAM_STR);
$stmt->bindParam(':id', $listItemID, PDO::PARAM_INT);
$stmt->execute();
$stmt->closeCursor();
echo $newValue;
} else {
echo "Error saving, sorry about that!";
}
}
나는이 문제를 알아 내려고 시간을 보냈습니다. 누군가가 나를 도울 수 있기를 바랍니다. 감사!