Mélanger Javascript & PHP
Bonjour,
Je ne suis pas sure de demander quelque chose de possible, à la vue des réponses de Google mais je tente ma chance ici.
J'ai un formulaire qui permet d'ajouter un projet. Pas de problème d'insertion, etc... Ce formulaire comporte une partie "demande" qui permet de demander des ressources (des jours/hommes d'une équipe).
Il à cette tête là :
http://img15.hostingpics.net/thumbs/...33formdmde.png
Bon, selon que la case "demande" est cochée, il apparaît mais mon problème n'est pas là.
Au clic sur "ajouter une équipe", j'aimerais qu'une ligne, identique à la première, se rajoute à la suite de mon tableau. Bon, quand c'est que des champs simples, ça va, j'arrive à me débrouiller mais là, ma liste déroulante est remplie grâce aux infos de la BDD (Postgre) et donc, avec PHP.
J'ai créer une fonction qui affiche ma liste déroulante remplie, histoire d'alléger la fonction javascript mais voilà, ça reste du PHP serveur, dans du javascript client... Je sais.
Voilà, ce que je demande, c'est quelque chose qui pourrait me faire le même traitement (ou alors, la bonne méthode tout simplement).
Place au code
HTML+Javascript
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
| function create_champ(i) {
var i2 = i + 1;
var champs = '<table><tr><td><select name="role'+i+'"><option> </option><option>C</option><option>P</option></select></td>'+
'<td><?php affich_equip(equip'+i')?></td>'+
'<td><input type="text" style="width:25px" name="01'+i+'"></td>'+
'<td><input type="text" style="width:25px" name="02'+i+'"></td>'+
'<td><input type="text" style="width:25px" name="03'+i+'"></td>'+
'<td><input type="text" style="width:25px" name="04'+i+'"></td>'+
'<td><input type="text" style="width:25px" name="05'+i+'"></td>'+
'<td><input type="text" style="width:25px" name="06'+i+'"></td>'+
'<td><input type="text" style="width:25px" name="07'+i+'"></td>'+
'<td><input type="text" style="width:25px" name="08'+i+'"></td>'+
'<td><input type="text" style="width:25px" name="09'+i+'"></td>'+
'<td><input type="text" style="width:25px" name="10'+i+'"></td>'+
'<td><input type="text" style="width:25px" name="11'+i+'"></td>'+
'<td><input type="text" style="width:25px" name="12'+i+'"></td>'+
'</tr></table>';
document.getElementById('leschamps_'+i).innerHTML = champs;
document.getElementById('leschamps_'+i).innerHTML += (i <= 10) ? '<br /><span id="leschamps_'+i2+'"><a href="javascript:create_champ('+i2+')">Ajouter</a></span>' : '';
} |
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
| <label for="nom">Nom du demandeur :</label><input type="text" id="nom" style="width:300px" value="<?php echo $_SESSION['login']; ?>"><br />
<br/>
<table>
<tr>
<th>Rôle</th>
<th>Equipe</th>
<th>Jan</th>
<th>Fév</th>
<th>Mar</th>
<th>Avr</th>
<th>Mai</th>
<th>Juin</th>
<th>Juil</th>
<th>Août</th>
<th>Sept</th>
<th>Oct</th>
<th>Nov</th>
<th>Déc</th>
</tr>
<tr>
<td><select name="role"><option> </option><option>C</option><option>P</option></select></td>
<td><?php affich_equip(equip)?></td>
<td><input type="text" style="width:25px" name="01"></td>
<td><input type="text" style="width:25px" name="02"></td>
<td><input type="text" style="width:25px" name="03"></td>
<td><input type="text" style="width:25px" name="04"></td>
<td><input type="text" style="width:25px" name="05"></td>
<td><input type="text" style="width:25px" name="06"></td>
<td><input type="text" style="width:25px" name="07"></td>
<td><input type="text" style="width:25px" name="08"></td>
<td><input type="text" style="width:25px" name="09"></td>
<td><input type="text" style="width:25px" name="10"></td>
<td><input type="text" style="width:25px" name="11"></td>
<td><input type="text" style="width:25px" name="12"></td>
</tr>
</table>
<span id="leschamps_2"><a href="javascript:create_champ(2)">Ajouter une équipe</a></span> |
Fonction PHP (liste déroulante) affich_equip($nom_liste)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| function affich_equip($nom_list){
connec_base ();
//Exécution de la requête SQL
$query = 'SELECT distinct equipe
FROM service
ORDER BY equipe';
$result = pg_query($query) or die('Échec de la requête : ' . pg_last_error());
// Affichage des résultats en HTML
echo "<select name='$nom_list'>\n";
echo "<option> </option>";
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
foreach ($line as $col_value) {
echo "\t\t<option>$col_value</option>\n";
}
}
echo "</select>\n";
deco_base ();
} |
PS: Je sais que le Javascript ne fonctionne pas avec :
'<td><?php affich_equip(equip'+i')?></td>'+
mais c'est pour bien me faire comprendre sur mes attentes.
Voilà, en vous remerciant d'avance.