Bonjour tout le Monde
Quelqu'un peut m'aider à résoudre un épineux pb sur un script appelant JQUERY ( Dependent select box) normalement fonctionnel à 80 %, je vous explique :
je monte une recherche par cascade sur une BDD le 01 et 02 ème select fonctionnent bien mais pas le 03 ème, en effet ce dernier ne tient pas compte de ma sélection sur la 01 ère liste est affiche 02 type de résultats selon la mention sur javascript ex :
1 - il affiche un seul resultat ( le 01er de la liste ) si :
2 - il affiche + eurs résultats ( donnée du 01 Select mais aussi d'autres ) si :
var aid = $(this).text().trim();
tel que vous le verrez en bas , il y a surement une erreur dans le code javascript et / ou ficher PHP de ce 03 ème select, Meri de me l'indiquer
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
| <script type = "text/javascript">
$(document).ready(function(){
$('#suj').change(function(){
var aid = $(this).val();
if (aid){
$.POST("data11.php",
{ suj : aid },
function(data) {
$('#titre').html(data);
});
}
else {
$('#publiv').html('<option>CHOIX OEUVRE</option>');
}
});
$('#titre').change(function(){
var aid = $(this).text().trim();
if (aid){
$.POST("data22.php",
{ titre : aid },
function(data) {
$('#publiv').html(data);
});
}
else {
$('#publiv').html('<option>CHOIX EDITION</option>');
}
});
});
</script> |
01 SELECT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <select type= "text" name ="suj" id ="suj" style="width:130px; font-weight: bold; text-align:center; position: relative; right: -60px;" >
<option value= "" >Choix sujet</option>
<?php
mysqli_set_charset($conn,'utf8');//si jamais tu as des accents dans la table !
$query =("SELECT 3_oeuv.suj FROM 3_oeuv GROUP BY 3_oeuv.suj");
$result = mysqli_query ($conn, $query );
while ( $row = mysqli_fetch_array( $result)){
echo '<option value="'.$row['suj'].'"';
if(isset($_POST['suj']) && $_POST['suj'] == $row['suj']) echo 'selected="selected"';
echo ">".$row['suj']."</option>'";
}
?>
</select>
<button type = " submit" name ="search" style = "font-weight: bold; font-size: 15px; width:55px; position: relative; right: -50px;">RECH</button> |
PHP , 2 ème Selct
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
| <?php
mysqli_set_charset($conn,'utf8');//si jamais tu as des accents dans la table !
if(isset($_POST['suj']) && !empty ($_POST['suj'])){
$id = $_POST['suj'];
$query =("SELECT * FROM 3_oeuv WHERE 3_oeuv.suj = '{$id}' GROUP BY 3_oeuv.titre");
if($result =mysqli_prepare ($conn, $query )){
mysqli_stmt_bind_param($result, 's', $id);
mysqli_stmt_execute($result);
$data=mysqli_stmt_get_result($result);
mysqli_stmt_store_result($result);
$count =mysqli_stmt_affected_rows($result);
if ($count >0){
while ( $row = mysqli_fetch_array($data)){
echo '<option value="'.htmlspecialchars($row['titre']).'"';
if(isset($_POST['titre']) && $_POST['titre'] == $row['titre']) echo 'selected="selected"';
echo ">".htmlspecialchars($row['titre']).'</option>';
}
mysqli_free_result($data);
}
else {
echo '<option>Not Nom Availibal :'.$count.'</option>';
}
mysqli_stmt_close($result);
}
}
?> |
03 eme Select
1 2 3 4 5 6 7 8
| <select type= "text" name ="publiv" id="publiv" style="width:190px;font-weight: bold; text-align:center; position: relative; right: 930px;">
<option value="">Choix Edition</option>
<?php
include 'data22.php'
?>
</select>
<button type = " submit" name ="submitt" style = "font-weight: bold; font-size: 15px; width:55px; position: relative; right: 1190px;">Rech</button> |
PHP , 3 ème Selct
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
| <?php
if(isset($_POST['titre']) && !empty ($_POST['titre'])){
$ide = $_POST['titre'];
$query =("SELECT * FROM 4_etat JOIN 3_oeuv ON 3_oeuv.id_oeuv = 4_etat.id_etat WHERE 3_oeuv.titre = '{$ide}' GROUP BY 4_etat.publiv");
if($result =mysqli_prepare ($conn, $query )){
mysqli_stmt_bind_param($result, 's', $ide);
mysqli_stmt_execute($result);
$data=mysqli_stmt_get_result($result);
mysqli_stmt_store_result($result);
$count =mysqli_stmt_affected_rows($result);
if ($count >0){
while ( $row = mysqli_fetch_array($data)){
echo '<option value="'.htmlspecialchars($row['publiv']).'"';
if(isset($_POST['publiv']) && $_POST['publiv'] == $row['publiv']) echo 'selected="selected"';
echo ">".htmlspecialchars($row['publiv']).'</option>';
}
mysqli_free_result($data);
}
else {
echo '<option>Not Nom Availibal :'.$count.'</option>';
}
mysqli_stmt_close($result);
}
}
?> |
Vue mon niveau assez bas en javascript et le besoin extrême de ce travail, toute proposition est la bien venue
Partager