Bonjour les dév, pro ou amateurs! Et merci de donner de votre temps pour les n00bs comme moi.
Voilà la situation:

Je bosse sur un annuaire d'entreprise (intranet) en PHP. Du très basique.
Un formulaire en PHP gave une base de données en MySQL. 1 table, 7 champs.
Une page affiche les résultats dans un tableau.
Chaque ligne du tableau se termine par un bouton qui porte le même ID que celui de la ligne.
Ce bouton "Modifier" me servira à mettre à jour les champs de la Bdd.

La question:

Comment "transporter" l'ID du bouton vers la page qui me servira à modifier ma ligne de résultat lorsque je clique dessus ?
Sachant que j'aimerais éviter le JS parce que j'ai pas encore ouvert le bouquin -_-' Smiley lol
Salut,

Cela se fait par méthode GET.
Un simple lien permet de "transporter" ton ID.

<a href="modification.php?id=1542">Modifier la ligne</a>


et dans ta page modification.php, tu récupères l'id comme ça :

<?php
$id = $_GET['id'];
?>

Modifié par taspeur (04 Dec 2017 - 18:08)
Salut,
merci de t'être penché sur mon cas.
Voici comment j'affiche les résultats d'une requête:

echo '<tr>';
                        
echo '<td style="color:#919399;" bgcolor="#CCCCCC">'.$donnees["ID"].'</td>';
echo '<td bgcolor="#CCCCCC"><b>'.$donnees["NOM"].'</b></td>';
echo '<td bgcolor="#CCCCCC">'.$donnees["PRENOM"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$donnees["FONCTION"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$donnees["SERVICE"].'</td>';
echo '<td style="color:#fff;" bgcolor="#666">'.$donnees["TEL"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$donnees["MAIL"].'</td>';  
echo '<td>
<input type="button" value="modifier" name="Modif" id="'.$donnees["ID"].'" />
</td>'; 
 echo '</tr>'."\n";


Dans ce cas-ci comment paramétrer mon bouton ?
comme ça ?

<input type="button" method="get" value="Cherche !" />

Modifié par Administre_a_tort (05 Dec 2017 - 14:00)
Heu non, oublies.
Je vais faire comme tu dis un lien avec une class CSS pour l'aspect et l'action bouton.
Je reviens vers toi dès que j'ai un résultat.
Encore merci.
Tu as deux solutions, soit tu utilises un lien que tu stylises avec CSS pour qu'il ressemble à un bouton. C'est à mon sens le plus simple.

Sinon tu utilises un formulaire comme ceci :
<form action="modification.php" method="get">
  <fieldset>
    <input type="hidden" name="id" value="1534" />
    <input type="submit" value="Modifier" />
  </fieldset>
</form>


Mais tu auras autant si ce n'est plus de CSS à appliquer sur ton formulaire pour obtenir un résultat visuel adapté à ton tableau.
Modifié par taspeur (05 Dec 2017 - 16:26)
Salut

Alors petite question, est ce lors du clic sur le bouton tu veux un "rafraîchissement de la page ou non" ? si oui, alors tu devra passer par de l'ajax. Si non alors il faut passer par une balise <form> en html
Donc tu créer ton form avec la méthode GET ou POST (moi je préconise POST)

echo "<form action='ta_page_update_mysql.php' action='POST'>";

//foreach resultat
echo '<tr>';    
echo '<td style="color:#919399;" bgcolor="#CCCCCC">'.$donnees["ID"].'</td>';
echo '<td bgcolor="#CCCCCC"><b>'.$donnees["NOM"].'</b></td>';
echo '<td bgcolor="#CCCCCC">'.$donnees["PRENOM"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$donnees["FONCTION"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$donnees["SERVICE"].'</td>';
echo '<td style="color:#fff;" bgcolor="#666">'.$donnees["TEL"].'</td>';
echo '<td bgcolor="#CCCCCC">'.$donnees["MAIL"].'</td>';  
echo '<td>
echo '<input type="button" value="modifier" name="Modif"  />';
echo "<input type='hidden' name='id' value='".$donnees['ID']."' />";
</td>'; 
 echo '</tr>'."\n";
//end foreach
echo "</form>";


Et don comme taspeur tu ajoute l'input hidden pour pouvoir récupérer la value de l'input caché qui est donc l'ID.
Petit rappel, les attributs "ID" et "CLASS" dans les balises HTML sont uniquement pour le JS ou le CSS. Avec le php on travail sur les "NAME"
Coté php tu le récupère donc avec $_POST['id']
Modifié par JENCAL (05 Dec 2017 - 16:53)
L'avantage du GET c'est que tu peux avoir un lien direct vers ta page de modification.
D'autant qu'il n'y a qu'une seule variable à passer.

Le POST est plus avantageux lorsque tu passes plusieurs variables et notamment du texte.
Modifié par taspeur (05 Dec 2017 - 17:36)
Merci à vous deux.
@Jencal: quel est l'interêt d'un input hidden pour récupérer l'ID ? Je le récupère déjà dans mon premier <td>. Je ne peux pas utiliser celui-là ?

Ce que je souhaite faire en plus clair :
au clic sur le bouton on charge une page avec un formulaire pour modifier l'entrée qui nous intéresse. D'où l'utilité d'embarquer son ID.

Ce formulaire reprend les champs utilisés pour ajouter un contact à la Bdd mais avec la requête UPDATE.

@Taspeur : j'ai opté pour le lien stylisé. J'ai collé ma variable dedans pour récupérer l'ID.
Je teste tout ça.

On dira ce qu'on voudra, débuter le php en solo, c'est rock n' roll. Je suis content de trouver de l'aide.
Ah c'est sur que débuter en PHP juste avec des tutos c'est assez compliqué...

j'ai eu la chance qu'on m'aide quand j'ai débuté, alors j'essaye de faire de même Smiley cligne
Merci, j'ai utilisé la méthode GET pour récupérer mon ID puis POST pour traiter les données du formulaire.
Problème résolu. On se retrouve sur un autre topic pour un sac de nœuds avec SQL. Smiley biggrin