modification de champs

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : modification de champs

par ouckileou » 23 juin 2006, 22:39

je n'arrive pas du tout à utiliser ton script ouckileou. Je te remercie quand même, mais je crois que je vais zappé cette partie du site Internet et ne pas la faire.
C'est à adapter, je me suis fait ch... à la faire, fais pareil pour la reprendre !

qu'est-ce que tu as fais pour l'instant ? qu'est-ce que tu n'as pas compris ? on peut t'aider si tu donnes des infos...
Rien de plus agaçant que de donner une piste et de lire "j'y arrive pas, j'abandonne..." sans explications
Surtout quand on a passé du temps à fournir un script

sans déconner ce n'est pas une chose très très compliquée, si tu t'arrêtes à cette difficulté, tu peux arrêter le développement maintenant, car tu trouveras bien pire

par béka » 23 juin 2006, 16:36

je n'arrive pas du tout à utiliser ton script ouckileou. Je te remercie quand même, mais je crois que je vais zappé cette partie du site Internet et ne pas la faire.

par béka » 23 juin 2006, 15:09

je n'y arrive pas, je vais abandonner je crois...

par béka » 23 juin 2006, 11:42

si mais je fais mon stage dans un lycée, pas dans une société multimédia donc les connaissances de mon maitre de stage sont très limitées et du coup je gère tout tout seul, c'est pas évident quand on est confronté à un reel probleme mais c'est sur que c'est un plus, j'ai beaucoup appris déjà, ici ou en recherchant, mais je veux apprendre plus.. lol

par ouckileou » 23 juin 2006, 11:20

Ce site est l'objet d'un stage afin de valider mon DUT, donc ce n'est pas moi qui ai choisi la facilité.
Et bien c'est cool alors, tu es justement là pour apprendre :)

Mais, personne ne t'encadre dans ce stage ? :shock:

par béka » 23 juin 2006, 11:18

Si tu es vraiment novice il fallait peut-être commencer par des trucs vraiment simples avant de te lancer dans un site de petites annonces
Ce site est l'objet d'un stage afin de valider mon DUT, donc ce n'est pas moi qui ai choisi la facilité.

Je vais essayer ce que tu m'as expliqué.

Je retiens au courant si j'ai des difficultés ou des problèmes

par ouckileou » 23 juin 2006, 10:04

oui mais moi je suis novice et je pense pas que cela soit dans les cordes et je ne sais pas si je suis capable de réaliser ca.
Si tu es vraiment novice il fallait peut-être commencer par des trucs vraiment simples avant de te lancer dans un site de petites annonces

Et la manière que je t'ai indiquée n'est vraiment pas si complexe que ça... y'a rien de foufou à faire !

Construire un formulaire en répétant le modèle pour chaque annonce, avec le numéro (je t'ai mis le modèle)
Puis étape 2 traiter les tableaux reçus et créer des requêtes

Avec un peu de travail ce n'est pas bien sorcier, et si tu veux faire un site d'annonces un peu élaboré il va bien falloir passer par ce genre de choses un jour ou l'autre et ce n'est pas en disant "je ne suis pas capable" que tu avanceras.
Je ne vois vraiment pas comment faire beaucoup plus simple que ce que je t'ai donné...

Donc commence par avoir un formulaire, avec dedans les champs groupés par annonce affichant les infos déjà enregistrées
Ce que tu as mis doit se trouver dans la page index.php ?
Là partie formulaire oui, la partie traitement des tableaux dans modif.php, ça reste logique quand même :roll:
Mais faut-il laisser la boucle que j'avais faite? la laisser aussi dans modif.php ?
Tu peux laisser la boucle qui récupère les infos (select * from stages etc.) sauf qu'à partir de ça tu ne crées par plusieurs formulaire, mais plusieurs parties du même formulaire en insérant l'identifiant d'annonce dans le nom du champ comme je l'ai fait

par béka » 23 juin 2006, 09:59

oui mais moi je suis novice et je pense pas que cela soit dans les cordes et je ne sais pas si je suis capable de réaliser ca. Ce que tu as mis doit se trouver dans la page index.php ?

Mais faut-il laisser la boucle que j'avais faite? la laisser aussi dans modif.php ?

par ouckileou » 23 juin 2006, 09:50

je comprends pas trop ce que tu veux faire ouckileaou peux-tu m'expliquer ton raisonnement ?
Si j'ai bien compris, tu veux permettre à un utilisateur de modifier plusieurs annonces à la fois
Du coup tu as des champs qui vont contenir les mêmes infos, mais pour des annonces différentes
Donc : il faut que à chaque info soit associée le numéro d'annonce, pour pouvoir savoir quelle ligne modifier en base

C'est ce que j'ai fait en rajoutant un indice devant chaque nom de champ

Code : Tout sélectionner

name="annonce[2][salaire]
Sachant que le 2 sera mis dynamiquement lorsque tu construiras le formulaire, ce sera l'id de la ligne qui contient les infos récupérées en base

Résultat : à la réception du formulaire tu reçois un tableau à 2 dimensions
dimension 1 : toutes les annonces, identifiée par leur code
dimension 2 : les infos de chaque annonces

C'est donc facile de boucler sur ces tableaux, générer tes requêtes UPDATE dynamique et les exécuter

par béka » 23 juin 2006, 09:38

je comprends pas trop ce que tu veux faire ouckileaou peux-tu m'expliquer ton raisonnement ?

par ouckileou » 22 juin 2006, 17:45

Je ne comprends pas pourquoi tu répètes le formulaire, si tu veux modifier plusieurs annonces à la fois
Surtout pour afficher plusieurs fois les mêmes infos (nom, prénom etc) qui ne sont pas modifiables

Il faut associer chaque groupe d'infos, avec le numéro de l'annonce

Ce que tu peux faire par exemple, c'est récupérer des tableaux, ce sera plus facile à gérer

Voici le principe
<?php
if (isset($_POST['submit'])) {
	echo '<pre>';
	print_r($_POST);
	echo '</pre>';

	echo '--- boucle sur les résultats ---<br />';
	foreach ($_POST['annonce'] as $idAnnonce => $contenuAnnonce) {
		echo 'Annonce n°'.$idAnnonce.'<br />';
		foreach($contenuAnnonce as $nomRubrique => $valeurRubrique) {
			echo  $nomRubrique. ' : '.$valeurRubrique.'<br />';
			// ici  construction de la requête SQL
		}
		// exécution de la requête SQL
		echo '<br />';
	}
	echo '--- Fin boucle sur les résultats ---<br />';
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
        Annonce 1 :<br />
	Poste recherché : <br> <input name="annonce[1][poste]" type="text" size="40" value="Poste annonce 1"><br />
	Salaire demandé : <br> <input name="annonce[1][salaire]" type="text" size="40" value="5000"><br />
	<br />
        Annonce 2 :
	Poste recherché : <br> <input name="annonce[2][poste]" type="text" size="40" value="Poste annonce 2"><br />
	Salaire demandé : <br> <input name="annonce[2][salaire]" type="text" size="40" value="2000"><br />
<input type="submit" name="submit">
</form>

par béka » 22 juin 2006, 16:41

personne pour m'aider, car depuis tout à l'heure je galère... :cry:

par béka » 22 juin 2006, 14:27

C'est super long, je suis désolé

Alors voici la page ou je "récolte" les informations concernant un utilisateur identifié :
<?php 
include("../../../connexion.php");

$sql = "SELECT * FROM demande_stage WHERE nom_etudiant='".$_SESSION[nom]."'"; 
$result = mysql_query($sql) or die(mysql_error());

$i=0;

while ($row = mysql_fetch_array($result)) {
$adresse_etudiant = nl2br(($row['adresse_etudiant']));
$email_etudiant = ($row['email_etudiant']);
$tel_etudiant = ($row['tel_etudiant']);
$intitule = ($row['intitule']);
$poste = ($row['poste']);
$milieu_professionnel = ($row['milieu_professionnel']);
$date_debut = ($row['date_debut']);
$duree = ($row['duree']);
$id= ($row['id']); ?>
 
<form action="modif.php" method="post" name="modif<?php echo $i; ?>">
		<p class="Texte">
		Numéro de demande : <input name="id" type="text" size="3" value="<? echo $id; ?>" readonly><br><br>
		Nom* : <br> <input name="nom_etudiant" type="text" size="20" value="<? echo $_SESSION['nom'] ?>" readonly><br><br>
		Prénom* : <br> <input name="prenom_etudiant" type="text" size="20" value="<? echo $_SESSION['prenom'] ?>" readonly><br><br>
		Adresse : <br> <textarea name="adresse_etudiant" cols="30" rows="5"><? echo $adresse_etudiant; ?></textarea><br><br>
		Email : <br> <input name="email_etudiant" type="text" size="40" value="<? echo $email_etudiant; ?>"><br><br>
		Tél : <br> <input name="tel_etudiant" type="text" size="14" value="<? echo $tel_etudiant; ?>"><br><br>
		Poste recherché : <br> <input name="poste" type="text" size="40" value="<? echo $poste; ?>"><br><br>
		Dans quel milieu professionnel : <select name="milieu_professionnel">
			<option>Automobile</option>
			<option>Electricité</option>
			<option>Energétique</option>
			<option>Etude et définition de produits industriels</option>
			<option>Structure métallique</option>
			<option>Prothèse dentaire</option>
		</select><br><br><br>
		Nouvelle date de début de stage : 
		<select name="jour"> 
<?php 
for($i=1;$i<32;$i++) 
{ 
if($i<10) echo "<option>0".$i."</option>"; 
else echo "<option>".$i."</option>"; 
}?> 
</select>

<?php 
$mois= array("Janvier", "Février", "Mars","Avril", "Mai", "Juin","Juillet", "Août", "Septembre","Octobre","Novembre","Décembre"); 
?> 

<select name="mois"> 
<?php 
foreach($mois as $valeur){ 
  echo "<option>".$valeur."</option>"; 
}?> 
</select>

<select name="annee">
<?php 
for($i=2006;$i<2050;$i++) 
{ 
echo "<option>".$i."</option>"; 
}?> 
</select><br><br><br>

		
		Nouvelle durée du stage (en semaine) : 
<select name="duree"> 
<?php 
for($i=1;$i<11;$i++) 
{ 
if($i<10) echo "<option>0".$i."</option>"; 
else echo "<option>".$i."</option>"; 
}?> 
</select>
<br><br><br>
Lettre de motivation : <br> <textarea name="intitule" cols="60" rows="40"><? echo $intitule; ?></textarea><br><br>
		<input type="submit" value="Modifier"></form><?php $i++; ?><? } ?>
Je voudrais qu'il puis modifier les champs, même sur plusieurs annonces s'il souhaite.
Mais lorsque je traite avec ma page modif.php il ne met a jour qu'une seule annonce.

Voici la page modif.php
$i=0; 
while(isset($_POST['modif'.$i.''])) { 


$nom_etudiant=nl2br($_POST['nom_etudiant']);
$prenom_etudiant=nl2br($_POST['prenom_etudiant']);
$adresse_etudiant=nl2br($_POST['adresse_etudiant']);
$intitule=nl2br($_POST['intitule']);
$milieu_professionnel=nl2br($_POST['milieu_professionnel']);
$email_etudiant=nl2br($_POST['email_etudiant']);
$tel_etudiant=nl2br($_POST['tel_etudiant']);
$poste=nl2br($_POST['poste']);
$id=nl2br($_POST['id']);


$query = "UPDATE demande_stage 
SET adresse_etudiant='".$adresse_etudiant."', email_etudiant='".$email_etudiant."', intitule='".$intitule."', tel_etudiant='".$tel_etudiant."', poste='".$poste."', milieu_professionnel='".$milieu_professionnel."' WHERE nom_etudiant='".$nom_etudiant."' AND prenom_etudiant='".$prenom_etudiant."' AND id='".$id."'";


$result = mysql_query($query);

     if (!headers_sent()) 
		{
			header("location: ../index.php");
		}  

$i++; 
}
  ?>

par ouckileou » 22 juin 2006, 14:20

Montre déjà ce que tu as fais

par béka » 22 juin 2006, 14:19

j'arrive pas a faire cette boucle, quelqu'un peut-il m'aider et m'éclairer?