par
x@v » 23 févr. 2010, 15:07
Bonjour,
je souhaite enregistrer l'ordre d'un menu dans ma table:
mon alert sur la requette est bonne mais ne s'enregistre pas !
UPDATE categorie SET id=1,
dateModification= NOW()
WHERE id=1;
UPDATE categorie SET id=2,
dateModification= NOW()
WHERE id=1;
UPDATE categorie SET id=3,
dateModification= NOW()
WHERE id=3;
UPDATE categorie SET id=4,
dateModification= NOW()
WHERE id=4;
UPDATE categorie SET id=5,
dateModification= NOW()
WHERE id=5;
UPDATE categorie SET id=6,
dateModification= NOW()
WHERE id=6;
UPDATE categorie SET id=7,
dateModification= NOW()
WHERE id=7;
UPDATE categorie SET id=8,
dateModification= NOW()
WHERE id=8;
structure de la table
CREATE TABLE IF NOT EXISTS `categorie` (
`id` mediumint(9) NOT NULL,
`nom` varchar(250) NOT NULL,
`baliseTitle` text NOT NULL,
`dateCreation` datetime NOT NULL,
`dateModification` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
je change l'id qui n'est donc pas incrémentable.
le js (jquery ui) :
Code : Tout sélectionner
$("#sortable").sortable({
helperclass : 'movingModule',
activeclass : 'sortableactive',
hoverclass : 'sortablehover',
opacity: 0.8,
revert: true,
floats: true,
tolerance: 'pointer',
update: function(){
serial = $(this).sortable('serialize');
$.ajax({
url: "order.php",
type: "POST",
data: serial,
success: function(feedback){
$('#data').html(feedback);
alert(feedback);
}
});
}
});
le html
<ul id="sortable"> <!-- menu catégorie -->
<?php
$i=1;
$sql="SELECT *, DATE_FORMAT(dateCreation, '%d/%m/%Y \à %H%i') as dateCreation, DATE_FORMAT(dateModification, '%d/%m/%Y \à %H%i') as dateModification FROM categorie ORDER BY id ASC";
$result=$connection->select($sql);
foreach ($result as $row):?>
<li id="ordreCat_<?php echo $row['id']?>">
<span class="id"><?php echo $i?></span> /
<?php echo $row['nom']?>
<a href="admin/index.php?admin=formulaireCategorie&modifierCategorie=<?php echo $row['id']?>" title=" modifier : <?php echo $row['nom']?>">
<img src="./admin/adminImg/Modify.png" class="imgEditionTaille" />
</a>
<a href="admin/requete.php?suprimerCategorie=<?php echo $row['id']?>" class="suprimerCategorie" title=" suprimer : <?php echo $row['nom']?>">
<img src="./admin/adminImg/Delete.png" class="imgEditionTaille" />
</a>
</li>
<?php $i++?>
<?php endforeach;?>
</ul>
la page order.php :
require_once('./class/class.pdo.php');
$connection = new Connection();
if(isset($_POST['ordreCat']))
{
$i=1;
foreach ($_POST['ordreCat'] as $val => $cle)
{
$sql="
UPDATE categorie SET id=".$i.",
dateModification= NOW()
WHERE id=".$cle.";";
$result= $connection->select($sql);
echo $sql;
$i++;
}
}
Bonjour,
je souhaite enregistrer l'ordre d'un menu dans ma table:
mon alert sur la requette est bonne mais ne s'enregistre pas !
[sql] UPDATE categorie SET id=1,
dateModification= NOW()
WHERE id=1;
UPDATE categorie SET id=2,
dateModification= NOW()
WHERE id=1;
UPDATE categorie SET id=3,
dateModification= NOW()
WHERE id=3;
UPDATE categorie SET id=4,
dateModification= NOW()
WHERE id=4;
UPDATE categorie SET id=5,
dateModification= NOW()
WHERE id=5;
UPDATE categorie SET id=6,
dateModification= NOW()
WHERE id=6;
UPDATE categorie SET id=7,
dateModification= NOW()
WHERE id=7;
UPDATE categorie SET id=8,
dateModification= NOW()
WHERE id=8;[/sql]
structure de la table
[sql]CREATE TABLE IF NOT EXISTS `categorie` (
`id` mediumint(9) NOT NULL,
`nom` varchar(250) NOT NULL,
`baliseTitle` text NOT NULL,
`dateCreation` datetime NOT NULL,
`dateModification` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
[/sql]
je change l'id qui n'est donc pas incrémentable.
le js (jquery ui) :
[code]$("#sortable").sortable({
helperclass : 'movingModule',
activeclass : 'sortableactive',
hoverclass : 'sortablehover',
opacity: 0.8,
revert: true,
floats: true,
tolerance: 'pointer',
update: function(){
serial = $(this).sortable('serialize');
$.ajax({
url: "order.php",
type: "POST",
data: serial,
success: function(feedback){
$('#data').html(feedback);
alert(feedback);
}
});
}
});[/code]
le html
[php] <ul id="sortable"> <!-- menu catégorie -->
<?php
$i=1;
$sql="SELECT *, DATE_FORMAT(dateCreation, '%d/%m/%Y \à %H%i') as dateCreation, DATE_FORMAT(dateModification, '%d/%m/%Y \à %H%i') as dateModification FROM categorie ORDER BY id ASC";
$result=$connection->select($sql);
foreach ($result as $row):?>
<li id="ordreCat_<?php echo $row['id']?>">
<span class="id"><?php echo $i?></span> /
<?php echo $row['nom']?>
<a href="admin/index.php?admin=formulaireCategorie&modifierCategorie=<?php echo $row['id']?>" title=" modifier : <?php echo $row['nom']?>">
<img src="./admin/adminImg/Modify.png" class="imgEditionTaille" />
</a>
<a href="admin/requete.php?suprimerCategorie=<?php echo $row['id']?>" class="suprimerCategorie" title=" suprimer : <?php echo $row['nom']?>">
<img src="./admin/adminImg/Delete.png" class="imgEditionTaille" />
</a>
</li>
<?php $i++?>
<?php endforeach;?>
</ul>[/php]
la page order.php :
[php]require_once('./class/class.pdo.php');
$connection = new Connection();
if(isset($_POST['ordreCat']))
{
$i=1;
foreach ($_POST['ordreCat'] as $val => $cle)
{
$sql="
UPDATE categorie SET id=".$i.",
dateModification= NOW()
WHERE id=".$cle.";";
$result= $connection->select($sql);
echo $sql;
$i++;
}
}[/php]