Valeurs présente dans BDD dans champs input
fromage2chevre
Messages postés
3
Statut
Membre
-
fromage2chevre Messages postés 3 Statut Membre -
fromage2chevre Messages postés 3 Statut Membre -
Bonjour à tous :)
Actuellement étudiant, j'ai pour projet de creer une application web permettant de modifier la valeurs d'indicateurs choisi dans une base de données.
J'ai Actuellement fini l'interface web et j'ai relié la base avec PDO. Jusqu'a la aucun problème, ça fonctionne :)
je vous joins une capture d'ecran pour appuyer mon explication :

Je souhaiterais maintenant, une fois l'indicateur choisi à l'aide de la liste deroulante, afficher les valeurs présente dans la basedirectement dans le champ input si celles-ci existent. J'ai cherché de l'aide sur internet, mais je n'ai pas trouvé comment faire sachant que ma liste déroulante est sur la même page que mes champs input.
Donc si quelqu'un à une idée ... ^^
Je vous joins également mes scripts, si ça peut vous permettre d'y voir plus clair :
code HTML:
Code PHP:
Voila, merci d'avance pour ceux qui vont prendre la peine de lire ^^
Actuellement étudiant, j'ai pour projet de creer une application web permettant de modifier la valeurs d'indicateurs choisi dans une base de données.
J'ai Actuellement fini l'interface web et j'ai relié la base avec PDO. Jusqu'a la aucun problème, ça fonctionne :)
je vous joins une capture d'ecran pour appuyer mon explication :

Je souhaiterais maintenant, une fois l'indicateur choisi à l'aide de la liste deroulante, afficher les valeurs présente dans la basedirectement dans le champ input si celles-ci existent. J'ai cherché de l'aide sur internet, mais je n'ai pas trouvé comment faire sachant que ma liste déroulante est sur la même page que mes champs input.
Donc si quelqu'un à une idée ... ^^
Je vous joins également mes scripts, si ça peut vous permettre d'y voir plus clair :
code HTML:
<!DOCTYPE html>
<html>
<head>
<title>CDG - Indigo - Saisie</title>
<meta charset="utf-8"/>
<link rel="stylesheet" href="css/CDG.css"/>
<script type="text/javascript" src="scripts/script.js"></script>
</head>
<body>
<img src=images/banniereCDG.gif border="0" id="banniere" >
<h2> Saisie des données élémentaires</h2>
<form action="pdo.php" method="post" >
<div>
<fieldset>
<legend> Veuillez completer les informations : </legend>
<label>Code de la <B><U> Donnée élémentaire :</U></B></label>
<select name="DE" id="DE" onchange="Change()">
<option value="">Sélectionnez</option>
<option value="IF30301">IF30301</option>
<option value="IF30302">IF30302</option>
<option value="IF30303">IF30303</option>
<option value="IF30304">IF30304</option>
<option value="IF30305">IF30305</option>
<option value="IF30306">IF30306</option>
<option value="IF30307">IF30307</option>
<option value="IF30308">IF30308</option>
<option value="IF30309">IF30309</option>
<option value="IF30310">IF30310</option>
<option value="IF31201">IF31201</option>
<option value="IF31202">IF31202</option>
[...]
</select>
<div id="divM" style="display:none">
<table>
<tr class="titre">
<td>Janvier</td><td>Fevrier</td><td>Mars</td><td>Avril</td><td>Mai</td><td>Juin</td><td>Juillet</td><td>Aout</td><td>Septembre</td><td>Octobre</td><td>Novembre</td><td>Decembre</td>
</tr>
<tr>
<td><input type='number' step="0.01" min="0" name='M1' id="M1"></td>
<td><input type='number' step="0.01" min="0" name='M2' id="M2"></td>
<td><input type='number' step="0.01" min="0" name='M3' id="M3"></td>
<td><input type='number' step="0.01" min="0" name='M4' id="M4"></td>
<td><input type='number' step="0.01" min="0" name='M5' id="M5"></td>
<td><input type='number' step="0.01" min="0" name='M6' id="M6"></td>
<td><input type='number' step="0.01" min="0" name='M7' id="M7"></td>
<td><input type='number' step="0.01" min="0" name='M8' id="M8"></td>
<td><input type='number' step="0.01" min="0" name='M9' id="M9"></td>
<td><input type='number' step="0.01" min="0" name='M10' id="M10"></td>
<td><input type='number' step="0.01" min="0" name='M11' id="M11"></td>
<td><input type='number' step="0.01" min="0" name='M12' id="M12"></td>
</tr>
</table>
</div>
<div id="divT" style="display:none" align="center">
<table>
<tr class="titre"><td>1er Trimestre</td><td>2eme Trimestre</td><td>3eme Trimestre</td><td>4eme Trimestre</td></tr>
<tr>
<td><input type='number' step="0.01" min="0" name='T1' id="T1"></td>
<td><input type='number' step="0.01" min="0" name='T2' id="T2"></td>
<td><input type='number' step="0.01" min="0" name='T3' id="T3"></td>
<td><input type='number' step="0.01" min="0" name='T4' id="T4"></td>
</tr>
</table>
</div>
<div id="divS" style="display:none" align="center">
<table>
<tr class="titre"><td>1er Semestre</td><td>2eme Semestre</td></tr>
<tr>
<td><input type='number' step="0.01" min="0" name='S1' id="S1"></td>
<td><input type='number' step="0.01" min="0" name='S2' id="S2"></td>
</tr>
</table>
</div>
<div id="divA" style="display:none" align="center">
<table>
<tr class="titre"><td>Année</td></tr>
<tr>
<td><input type='number' step="0.01" min="0" name='A' id="A"></td>
</tr>
</table>
</div>
</fieldset>
<p>
<input type="submit" value="Envoyer" />
<li id="finir"><a href="index.php">FINIR</a></li>
<a href="listede.php">Voir les données élémentaires remplies</a>
</p>
</div>
</form>
</body>
</html>
Code PHP:
<?php
try
{
// Connexion
$bdd = new PDO('mysql:host=127.0.0.1;dbname=valeurs;charset=utf8', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
//Recupération de la valeur du post
$DE=$_POST['DE'];
$M1=$_POST['M1'];
$M2=$_POST['M2'];
$M3=$_POST['M3'];
$M4=$_POST['M4'];
$M5=$_POST['M5'];
$M6=$_POST['M6'];
$M7=$_POST['M7'];
$M8=$_POST['M8'];
$M9=$_POST['M9'];
$M10=$_POST['M10'];
$M11=$_POST['M11'];
$M12=$_POST['M12'];
$T1=$_POST['T1'];
$T2=$_POST['T2'];
$T3=$_POST['T3'];
$T4=$_POST['T3'];
$S1=$_POST['S1'];
$S2=$_POST['S2'];
$A=$_POST['A'];
//preparation et envoi des requetes, plusieurs requete pour eviter l'envoie de 0 non voulu
$reqM = $bdd->prepare('UPDATE valeursde SET M1 = :M1, M2 = :M2, M3 = :M3, M4 = :M4, M5 = :M5, M6 = :M6, M7 = :M7, M8 = :M8, M9 = :M9, M10 = :M10, M11 = :M11, M12 = :M12 WHERE DE = :DE AND Periode = "M"');
$reqT = $bdd->prepare('UPDATE valeursde SET T1 = :T1, T2 = :T2, T3 = :T3, T4 = :T4 WHERE DE = :DE AND Periode = "T"');
$reqS = $bdd->prepare('UPDATE valeursde SET S1 = :S1, S2 = :S2 WHERE DE = :DE AND Periode = "S"');
$reqA = $bdd->prepare('UPDATE valeursde SET A = :A WHERE DE = :DE AND Periode = "A"');
$reqM->execute(array(
'M1' => $M1,
'M2' => $M2,
'M3' => $M3,
'M4' => $M4,
'M5' => $M5,
'M6' => $M6,
'M7' => $M7,
'M8' => $M8,
'M9' => $M9,
'M10' => $M10,
'M11' => $M11,
'M12' => $M12,
'DE' => $DE));
$reqT->execute(array(
'T1' => $T1,
'T2' => $T2,
'T3' => $T3,
'T4' => $T4,
'DE' => $DE));
$reqS->execute(array(
'S1' => $S1,
'S2' => $S2,
'DE' => $DE));
$reqA->execute(array(
'A' => $A,
'DE' => $DE));
header ("Location: $_SERVER[HTTP_REFERER]" );
die();
?>
Voila, merci d'avance pour ceux qui vont prendre la peine de lire ^^
A voir également:
- Valeurs présente dans BDD dans champs input
- Word mettre à jour tous les champs ✓ - Forum Word
- Dans la présentation à télécharger, sans modifier leur position dans la feuille : passez le rectangle noir en arrière-plan. passez le rectangle bleu au premier plan. passez le rectangle hachuré au premier plan. quel mot apparaît ? - Forum LibreOffice / OpenOffice
- MAJ automatique de champs répétitifs dans un document Word - Forum Word
- Les données fournies dans le fichier à télécharger peuvent être synthétisées par le tableau récapitulatif ci-dessous. dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des quatre premières colonnes. il manque 5 valeurs dans le tableau ci-dessous. retrouvez-les dans votre tableau, puis reportez-les arrondies à l’entier le plus proche. ✓ - Forum Excel
- Echec mise à jour champs Word ✓ - Forum Word
2 réponses
Bonjour,
Deux possibilités :
Tu places ta liste entre des balises FORM et tu déclenches, lors d'une selection dans cette liste, un submit de la FORM (via javascript et l'attribut onchange).
A ce momment là.. tu peux récupérer via $_POST la valeur de ta liste.
Autre possibilité (plus propre selon moi) est de passer par de l'ajax.
(pour cela je t'invite à mettre le plugin JQUERY sur ton site).
Cela te permettra de mettre à jour ton input SANS avoir à recharger la page.
Tu trouveras un grand nombre de tutos sur le net au sujet de l'AJAX.
Deux possibilités :
Tu places ta liste entre des balises FORM et tu déclenches, lors d'une selection dans cette liste, un submit de la FORM (via javascript et l'attribut onchange).
A ce momment là.. tu peux récupérer via $_POST la valeur de ta liste.
Autre possibilité (plus propre selon moi) est de passer par de l'ajax.
(pour cela je t'invite à mettre le plugin JQUERY sur ton site).
Cela te permettra de mettre à jour ton input SANS avoir à recharger la page.
Tu trouveras un grand nombre de tutos sur le net au sujet de l'AJAX.
Merci de ta réponse Jordane45, effectivement je n'avais pas pensé à mettre ma liste déroulante dans une balise form
J'ai tenté de me renseigner sur l'AJAX suite à une réponse que j'ai eu sur un autre forum, mais je n'ai pas bien compris en quoi consisterais la manipulation ^^
et surtout en quoi cela serais plus "propre" que ta solution proposée précédemment, qui me semble plus facile à réaliser
J'ai tenté de me renseigner sur l'AJAX suite à une réponse que j'ai eu sur un autre forum, mais je n'ai pas bien compris en quoi consisterais la manipulation ^^
et surtout en quoi cela serais plus "propre" que ta solution proposée précédemment, qui me semble plus facile à réaliser
Plus "propre" car tu n'as pas besoin de recharger la page (chose qui est faite lorsque tu submit un FORM )
par contre, oui, c'est moins facile à faire....
Pour l'AJAX ( en utilisant JQUERY ) tu peux faire un truc du gnre :
Dans ton select :
La partie Javascript :
La partie PHP serait de la forme :
par contre, oui, c'est moins facile à faire....
Pour l'AJAX ( en utilisant JQUERY ) tu peux faire un truc du gnre :
Dans ton select :
<select name="DE" id="DE" onchange="Change(this.value)">
La partie Javascript :
function Change(valeur){
var urlAjx = 'repertoire/page_php_contenant_les_donnees.php';
var data = {valeurcherchee:valeur};
$.ajax({
url: urlAjx,
dataType: "json",
type: "POST",
data: data,
async: false,
success: function(reponse){
$("#id_de_ton_input").val(reponse);
},
error: function(jqXHR, textStatus){
var error = formatErrorMessage(jqXHR, textStatus);
alert('error :' + error);
}
});
}
La partie PHP serait de la forme :
<?php $valeurcherchee= isset($_POST['valeurcherchee'])?$_POST['valeurcherchee']:''; // Ici un traitement quelconque (comme par exemple interroger ta base de données) $result = "Bonjour ".$valeurcherchee //Ici le retour du fichier AJAX (ce qui sera envoyé à la fonction javascript...) echo json_encode($result); ?>