[RESOLU] besoin de rafraichir pour voir la modification de la bdd

logtt
Invité n'ayant pas de compte PHPfrance

18 oct. 2011, 15:38

bonjour,

je pense que c'est vraiment une question de débutant car ca concerne le comportement de php.

en l'occurrence j'ai créé une page qui permet d'éditer la base de donnée.
j'ai donc la Bdd listé et à droite de chaque ligne des ptits icones pour éditer ou supprimer la ligne.

tout fonctionne hormis un détail.

lorsque je veux supprimer une des lignes je clique sur le bouton pour la supprimer ca relance la page mais la ligne est toujours là.
Il faut que je reclique sur actualisé pour que je vois enfin la ligne disparaitre...

lors du premier clique la ligne est bien supprimé de la bdd.

En faite ce qui est abstrait pour moi c'est cette " notion de temps" dans php. j'comprend pas ce qui va agir en premier dans le code.

là par exemple je voudrais que lorsque la page se charge après la suppression qu'il lise la bdd et l'écrive c'est tout j'vois pas pourquoi elle me ressort une version périmé.



comme tout post doit s'accompagner d'un code voici ce que je fais :
(ca doit pas être dans les normes car auto didacte mais ca "marche")

voila mon tableau
 <table>
   <tr style="border-bottom:#fff0e2 2px solid">
      <th scope="col">Numéro</th>
      <th width="15%" scope="col">critère 1</th>
      <th width="15%" scope="col">critère 2</th>
      <th width="15%" scope="col">critère 3</th>
      <th width="15%" scope="col">critère 4</th>
      <th width="15%" scope="col">critère 5</th>
      <th scope="col">Voir</th>
      <th scope="col">Editer</th>
      <th scope="col">Supp</th>
 </tr>
le sql pour récupérer la liste
$result = mysql_query("SELECT *, t.ID2 as Known_ID, t.type AS Known_type from {$_SESSION['blabla']} l inner join {$_SESSION['blabla2']} t on l.type = t.id2 GROUP BY l.ID ORDER BY {$tri} DESC;");

 while($row = mysql_fetch_array($result)) {
 ?>
et la le contenu
                            <td><center><?=stripslashes($row["critère1"])?><? if (strlen($row["critère1"])<1) {echo 'non défini';}?></center></td>
		<td><center><?=stripslashes($row["critère2"])?></center></td>
		<td><center><?=stripslashes($row["critère3"])?></center></td>
		<td><center><?=stripslashes($row["critère4"])?></center></td>
		<td><center><?=stripslashes($row["critère5"])?></center></td>
puis a droite de cette ligne
- un bouton voir qui renvoi vers un lien
- un bouton éditer qui renvoi des input hidden sur une autre page pr modifier la bdd
- et mon bouton supprimer :
	<form action="mapage.php" method="post" id="boutonsup">
						<input type="hidden" name="page" value="5"/>
						<input type="hidden" name="tri" value="<?echo $tri;?>"/>
						<input type="hidden" name="supressionautorise" value="<? echo "{$row['ID']}";?>" />
				                   <input type="image" src='photo/interface/erreur.png' onsubmit="submit-form();">

				</form>        

et après le code sql pr la suppression qui marche...


en copiant mon code j'crois déjà comprendre la source de mon problème... j'envoi l'ordre de suppression en input ce qui diffère l'action à la prochaine page #-o

hmm y me faudrait un javascript en faite qui dit "onclick" lance le code sql pr la suppression....:/

mais j'y connais rien en javascript :/ quelqu'un pourrait m'aider ou bien aurait une idée d'une alternative en php ?

Eléphanteau du PHP | 44 Messages

18 oct. 2011, 18:25

J'ai rien compris :mrgreen:

Si tu veux une interaction en javascript et php, recherche des exemples avec ajax, bon après si c'est pour un panel admin, bof, bof.

Si ce ne sont que des actions uniques, j'entends par là qu'il y a qu'une ligne affectée dans tes tables (pas de multi sélection) chaque fois, autant utilisant une méthode get, ou un simple lien, enfin c'est une affaire de goût.

logtt
Invité n'ayant pas de compte PHPfrance

18 oct. 2011, 19:14

mdr j'apprécie déjà ton courage d'avoir tout lu XD

beh oui c'est un bouton pour supprimer juste une ligne.

ce que je fais actuellement c'est que si la personne click sur le bouton ca envoi une variable
et si cette variable est envoyé ca enclanche le code qui supprime la ligne...
le problème du coup c'est que c'est en deux temps et que l'utilisateur est obligé de rafraichir la page pour que ca marche...

ca doit pas être très protocolaire car comme je le disais c'est fait en auto-didacte.

j'utilise la méthose post, comment tu voudrais faire quand tu dis 'par un get' ? comment j'peux supprimer une ligne par un POST ou en GET ?

Eléphant du PHP | 190 Messages

18 oct. 2011, 20:12

Tes requêtes de suppressions, si tu les fait après l'affichage, c'est normal que la page ne se mette pas à jour. Pour toute page qui combine traitement + affichage, il faut faire le traitement en début de script avant d'afficher quoi que ce soit.

logtt
Invité n'ayant pas de compte PHPfrance

19 oct. 2011, 10:49

oui zahnzao ca doit être ca mon problème récurant j'ai tjrs l'habitude de faire le htlm le php puis le sql j'vais tenter d'inverser . merci :)



SUPER CA MARCHE :D en une phrase tu as résolu trop de problèmes :)

merci à vous deux pour votre aide :)


comme je vous l'avez dit c'est un problème de débutant j'vais donc revoir ma façon de structurer ma page.

merci!

sujet clos !