Même quand je mets le formulaire en remplaçant les par exemple les "collectivite" par "nvcollectivite" pour que ça prenne en compte la modif ça ne marche pas
Version imprimable
Même quand je mets le formulaire en remplaçant les par exemple les "collectivite" par "nvcollectivite" pour que ça prenne en compte la modif ça ne marche pas
Je n'avais pas fait attention mais il n'y a pas de champs dans ton formulaire ... tu saisis tes modifications dans quoi ?
J'ai créé une BDD grâce au formulaire contenu dans le fichier NewLign.
J'ai copié ce formulaire dans le fichier ModifLign et à l'appui du bouton valider je rappelle ce m^me fichier ModifLign où est contenue ma requête UPDATE.
Le formulaire, je l'ai d'abord essayé sans modif puis j'ai remplacé les "name" des select par "nv..." et dans les deux cas ça ne change pas.
Est ce les id que je dois changer de par exemple collectivité à nvcollectivité?
Je ne vois pas ce formulaire dans le fichier que tu nous as mis.Citation:
J'ai copié ce formulaire dans le fichier ModifLign
Le voilà.
Je me demandais, dans ce genre de cas est ce que c'est le name ou l'id du select que je dois changer ou rien du tout
Alors effectivement tu fais ton Consult comme ça :
Et ton ModifLign doit reprendre l'id reçu de la première page :Code:
1
2
3
4
5<td><form method="post" action="ModifLign.php"><?php echo '<input type="hidden" name="id" value="' . $donnees['id'] . '" />' . $donnees['id'];?> <input type="submit" value="Modifier" name="modifier"/> <input type="submit" value="Supprimer" name="supprimer"/> </form> </td>
Code:
1
2<form action="ModifLign.php" method="post"> <input type="hidden" name="id" value="<?php echo $_POST['id']; ?>" />
Bonjour bonjour,
J'espère que tu vas bien ce matin et merci de m'aider autant.
Donc là j'ai mis la ligne avec l'id en hidden comme tu m'as dit. Le truc c'est que je suis revenue aux noms classiques sans nv devant. Je te transmet mon code actuel au cas où mon explication ne serait pas très claire :mrgreen:
Merci encore
Il faut juste que ce soit cohérent entre le formulaire et la requête :
si tu mets <select name="etat" id="etat">il faut mettre 'etat' => $_POST['etat'],Également il est plus logique de mettre les requêtes avant le formulaire dans le fichier.
J'ai remis les requêtes au début.
Le bouton modifier m'envoie bien sur la page ModifLign.php mais la requête n'est pas enregistrée au niveau de la BDD.
je me demandais si cette écriture était la bonne
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 $req = $bdd->prepare('UPDATE consultation SET collectivite = :nvcollectivite, departement = :nvdepartement, intitule = :nvintitule, secteur = :nvsecteur , echeance = :nvecheance, decision = :nvdecision, etat = :nvetat, responsable = :nvresponsable, partenaire = :nvpartenaire, source = :nvsource, format = :nvformat, demande = :nvdemande WHERE id = id'); $req->execute(array( "nvcollectivite" =>$_POST['nvcollectivite'], 'nvdepartement' => $_POST['nvdepartement'], 'nvintitule' => $_POST['nvintitule'], 'nvsecteur' => $_POST['nvsecteur'], 'nvecheance' => $_POST['nvecheance'], 'nvdecision' => $_POST['nvdecision'], 'nvetat' => $_POST['nvetat'], 'nvresponsable' => $_POST['nvresponsable'], 'nvpartenaire' => $_POST['nvpartenaire'], 'nvsource' => $_POST['nvsource'], 'nvformat' => $_POST['nvformat'], 'nvdemande' => $_POST['nvdemande'], 'id' => $_POST['id'], ));
Re bonjour , J'ai encore essayé plein de trucs mais ça ne marche toujours pas. J'ai l'impression que la requête UPDATE n'arrive pas à écraser les valeurs précédentes et je ne comprends pas pourquoi.
Je suis donc revenue au code initial
Bonjour,
il manque tous les ":"
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 $req = $bdd->prepare('UPDATE consultation SET collectivite = :nvcollectivite, departement = :nvdepartement, intitule = :nvintitule, secteur = :nvsecteur , echeance = :nvecheance, decision = :nvdecision, etat = :nvetat, responsable = :nvresponsable, partenaire = :nvpartenaire, source = :nvsource, format = :nvformat, demande = :nvdemande WHERE id = :id'); $req->execute(array( ':nvcollectivite' => $_POST['nvcollectivite'], ':nvdepartement' => $_POST['nvdepartement'], ':nvintitule' => $_POST['nvintitule'], ':nvsecteur' => $_POST['nvsecteur'], ':nvecheance' => $_POST['nvecheance'], ':nvdecision' => $_POST['nvdecision'], ':nvetat' => $_POST['nvetat'], ':nvresponsable' => $_POST['nvresponsable'], ':nvpartenaire' => $_POST['nvpartenaire'], ':nvsource' => $_POST['nvsource'], ':nvformat' => $_POST['nvformat'], ':nvdemande' => $_POST['nvdemande'], ':id' => $_POST['id'] ));
Merci j'ai essayé mais ça ne marche pas plus:
Et je n'ai toujours pas d'erreurCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <?php if (isset($_POST['Modifier']) && isset($_POST['id'])) { try { $bdd = new PDO('mysql:host=localhost;dbname=ao', 'root', ''); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); $req = $bdd->prepare('UPDATE consultation SET collectivite = :nvcollectivite, departement = :nvdepartement, intitule = :nvintitule, secteur = :nvsecteur , echeance = :nvecheance, decision = :nvdecision, etat = :nvetat, responsable = :nvresponsable, partenaire = :nvpartenaire, source = :nvsource, format = :nvformat, demande = :nvdemande WHERE id = :id'); $req->execute(array( ":nvcollectivite" =>$_POST['nvcollectivite'], ':nvdepartement' => $_POST['nvdepartement'], ':nvintitule' => $_POST['nvintitule'], ':nvsecteur' => $_POST['nvsecteur'], ':nvecheance' => $_POST['nvecheance'], ':nvdecision' => $_POST['nvdecision'], ':nvetat' => $_POST['nvetat'], ':nvresponsable' => $_POST['nvresponsable'], ':nvpartenaire' => $_POST['nvpartenaire'], ':nvsource' => $_POST['nvsource'], ':nvformat' => $_POST['nvformat'], ':nvdemande' => $_POST['nvdemande'], ':id' => $_POST['id'] )); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } } //header('Location: Consultation.php'); echo("La modification a été correctement effectuée") ?>
bonjour laissa,
il y'a une solution avec ajax, en effet devant chaque ligne tu ajoute un div dont le nom est identifié avec le id
et tu ajoute la fonction javascript dans ton header :Code:
1
2
3
4 echo "<td><input type=\"button\" value=\"SUPPRIMER\" onclick=\"suppr_pop($id)\"></input></td>"; echo "<td><div id=\"pop_div_$id\"></div></td>";
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 <script type="text/javascript"> function suppr_pop(str) { var div_name='pop_div_'+str; document.getElementById(div_name).innerHTML='<b>Chargement en cours... Veuillez patienter</b>'; if (str1=="") { document.getElementById(div_name).innerHTML=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp22=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp22=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp22.onreadystatechange=function() { if (xmlhttp22.readyState==4 && xmlhttp22.status==200) { document.getElementById(div_name).innerHTML=xmlhttp22.responseText; } } xmlhttp22.open("GET","delete.php?id="+str,true); xmlhttp22.send(); } </script>
et au niveau de ta page delete tu definit :
Code:$id=$_GET['id'];
Merci beaucoup pour ton aide. En fait c'est pour modifier et pas pour delete.
En tout cas je vais essayer.
Merci à tous pour votre temps.
Consciente que je ne dois pas vous accaparer plus que de raison, je vous remercie encore et continuerais de plancher dessus.
:ccool: