Envoie de donnée

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 : Envoie de donnée

Re: Envoie de donnée

par moogli » 27 oct. 2016, 10:53

deux solutions
- un bouton de validation pour chaque ligne tu auras l'index, c'est moche
- une requête serveur (ajax) quand tu modifies le champ radio (event onchange + une fonction js qui prend en paramètre l'id de la ligne.

après ce n'est pas forcément une mauvaise idée de permettre toute les modifications d'un coup ça évite les aller retour super chiant pour l'utilisateur.
si tu ne veux pas mettre a jour toute la table il faut ajouter un champ de formulaire caché contenant la valeur d'origine. Coté validation si la valeur a changé tu mets à jour la table sinon tu passes au suivant ;)


@+

Re: Envoie de donnée

par vini75 » 26 oct. 2016, 17:01

sa envoie tout les numéros de fiche et sa valide toutes les fiches en même temps moi je voudrais les valider une par une

Re: Envoie de donnée

par moogli » 26 oct. 2016, 16:31

salut,

ce que tu veux faire n'est pas possible ainsi en html.
au final tu as
<select >
<table>
<tr><td></td>/<tr>
</table></select>

hors un select c'est
<select >
<option value="valeur transmise">valeur affichée</option>
</select>

il va donc falloir faire un choix. A priori tu n'as pas besoin d'un select juste de passe le num_fiche dans le formulaire.

pour cela utilise un champ caché (hidden).

vu que tu as plusieurs lignes à traiter en même temps il va falloir utiliser la notation tableau pour avoir une corrélation entre les champs.
je t'invite aussi a chambre tes chekbox en radio vue que tu valide ou refuse mais rarement les deux en même temps ;)

ce qui donnerais un code dans le genre
<?php
if (isset($visiteurndf)) {
echo '<form method="POST" action="validation.php">';
  $req = $dbh->query("SELECT num_fiche, date_fiche, montant, libelle, img_id, statut FROM fiche WHERE matricule_v = '$visiteurndf'");
    $reqimage = $dbh->query("SELECT img_nom FROM images WHERE matricule_v = '$visiteurndf'");

    while ($donnees = $req->fetch() and $data = $reqimage->fetch()) {
        $nom_img = '../visiteur/uploads/'.$data['img_nom'];
        echo <<<html
        <input type="hidden" name="numFiche[]" value="{$donnees['num_fiche']}"/>
      <tr>
      <td>{$donnees['num_fiche']}</td>
      <td>{$donnees['date_fiche']}</td>
      <td>{$donnees['montant']}  euros</td>
      <td>{$donnees['libelle']}</td>
      <td>{$donnees['img_id']}</td>
      <td><a href="{$nom_img}">photo</a> </td>
      <td><input type="radio" name="valider[]" value="Valider"/>&nbsp;&nbsp;<input type="radio" name="valider[]" value="Refuser"/></td>
      </tr>
html;
    }
    echo <<<html
  </table>
<input type="submit" name="envoie"/>
</form>
html;
}
pour la validation, par exemple,
[php<?php
if(!empty($_POST[num_fiche]) && is_array($_POST['num_fiche'])){
foreach($_POST[num_fiche] as $key => $num){
echo 'la note numéro ',$num, ' est ', $_POST['valider'][$key];
}
}[/php]


@+

Envoie de donnée

par vinil75 » 26 oct. 2016, 15:33

Bonjour,

je cherche a récupérer une données dans un formulaire mais je ne sais pas comment faire voici le code :
<form method="POST" action="validation.php">
<select name="reponsecompta">
<?php
if (isset($visiteurndf)){
	$req = $dbh->query("SELECT num_fiche, date_fiche, montant, libelle, img_id, statut FROM fiche WHERE matricule_v = '$visiteurndf'");
    $reqimage = $dbh->query("SELECT img_nom FROM images WHERE matricule_v = '$visiteurndf'");
	
	echo '<table> <tr> <td> NUM FICHE </td> <td> DATE </td> <td> MONTANT </td> <td> LIBBELLE </td> <td> IMAGE </td> <td> LIEN </td> </td> <td> VALIDER </td> </td> <td> REFUSER </td> </tr>';
    
	while ($donnees = $req->fetch() AND $data = $reqimage->fetch()) {
	if (isset($donnees['img_id'])){
		$nom_img = $data['img_nom'];
		$repertoire = '../visiteur/uploads/';
		    echo '<tr> <td>' . $donnees['num_fiche'] . '</td> <td>' . $donnees['date_fiche'] . '</td> <td> ' . $donnees['montant'] . ' euros </td> <td> ' . $donnees['libelle'] . ' </td> <td> ' . $donnees['img_id'] . ' </td><td> <a href=' . $repertoire.$nom_img . '>photo</a> </td> <td><input type="checkbox" name="valider" value="Valider"/></td> <td><input type="checkbox" name="refuser" value="Refuser"/></td> </tr></br>';
	}
                    }
                    echo ('</table>');
}
?>

</select>
<input type="submit" name="envoie"/>
</form>
dans la boucle while je voudrais récupérer le "num_fiche" en fonction de la sélection (checkbox) mais je trouve aucun moyen, j'arrive a récupérer le premier ou le dernier seulement.

Cordialement