Appelle scripts PHP + données
Bonjour!
Dans le cadre de mon stage d'études, je réalise une application web destiné à la gestion des plannings de l'entreprise. Dans le contexte de modifications des ressources, j'ai un bouton m'ouvrant une modale contenant une liste déroulante (remplie via requête sql) et différent champs, le tout dans un formulaire. L'utilisateur final pourra choisir dans ce cas un poste de salarié et les informations relatives à ce poste devront s'afficher dans le formulaire permettant ainsi la modification. En cliquant ensuite sur un bouton "Modifier", la modification sera prise en compte dans la base de données, le tout de manière asynchrone afin que l'utilisateur n'ai pas à recharger la page de manière répété.
Modale:
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
<!-- popup de modification -->
<div id="myModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- contenu du popup-->
<div class="modal-content">
<div class="modal-header"> <!-- En-tête -->
<button type="button" class="close" data-dismiss="modal">×</button>
<p> <!-- Liste déroulante -->
<form method="POST" action="Scripts/posteSalarie_update.php">
<select name="selec" size="1" style="width: 230px" onchange="Change(this.value)">
<option value="0"> - - - - - - - - </option>
<?php
$req = "SELECT * FROM posteSalarie ORDER BY nomPoste";
try{
$stmt = $pdo->prepare($req);
$stmt->execute();
//$data = array(); //tableau pour stocker tous les résultats
//$data = [0]; //Le premier index de array() est 0, ainsi le 'numPoste' concordera à l'index array
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
//$data[] = $row;
echo "<option value='".$row["numPoste"]."'>".$row["nomPoste"]."</option>";
}
}
catch(Exception $e){
print "Erreur ! ".$e->getMessage(). "<br/>";
}
?>
</select>
</div>
<div class="modal-body"> <!--corps -->
Numéro du poste: <input type="text" name="numPoste" readonly="readonly"> <br/>
Nom du poste: <input type="text" name="nomPoste"> <br/>
<input type="submit" name="modifier" value="Modifier">
</form>
</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div> |
Le script appelé par "onChange":
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
function Change(value){ //Appelle d'un script PHP permettant la récupération des données
//On récupère
var num = value; //La variable 'num' récupère l valeur de la liste déroulante
$.ajax({
type: "POST", //méthode utilisé
url: "posteSalarie_retrieve.php", //fichier à appeler
data: num, //données envoyées
dataType: text, //Format des données
success: function(num, nom){
document.getElementsById('numPoste').value = num; //affiche le num du poste dans le formulaire
document.getElementsById('nomPoste').value = nom; //affiche le nom du poste
}
})
} |
Script appelé par la fonction précédente:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<?php
include "../include/connexion.php";
include "../Classe/posteSalarie.php";
if (isset($_POST['num'])) {
$num = $_POST['num'];
include "../Classe/posteSalarie.php";
$unPoste->retrieve($num);
return $unPoste->getNumPoste(), $unPoste->getNomPoste();
}
?> |
Vous vous en doutez, le code actuel ne fonctionne pas. La valeur de la liste déroulante est bien transmise à la fonction javascript mais l'affichage ne se réalise pas. C'est la première fois que je manipule du AJAX et bien que je me soit renseigné, il se peut donc que ce soit un simple problème de syntaxe ou de la manière dont je l'utilise mais si quelqu'un peut m'indiquer la route à suivre, j'en serais enchanté ! N'hésitez pas à demander d'autre infos si nécessaire.
Cordialement,
Skunka.