Je suis un tutoriel pour faire l'application web simple et je suis joignable pour l'édition en place. Tout fonctionne correctement, sauf que la nouvelle valeur n'est pas enregistrée dans la base de données. le journal de MySQL me porte à croire que le « ListItemId » ne passe pas, car il montre la déclaration qui est exécutée comme suit:Jeditable nouvelle valeur ne pas enregistrer à la base de données
UPDATE list_items
SET ListText='Test123'
WHERE ListItemID=''
LIMIT 1
J'ai dans mon index.php:
bindAllTabs("#list li span");
cela est dans mon dossier js:
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"}
});
}
j'ai dans mon lists.php
<?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;
}
?>
et ceci dans class.lists.inc.php:
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!";
}
}
J'ai passé des heures à essayer de comprendre cela. J'espère que quelqu'un peut m'aider. Merci!