J'ai deux liste liees, une pour les categories et une autres pour les sous-categories, quand je choisis une categorie et apres une sous-categorie le code et l'affichage sont bien, mais, en meme temps et sans rafraichir la page je change de categorie et je choisis une sous-categorie, l'affichage de cette derniere est place a la meme page que la premiere selection de la premiere categorie, un éclaircissement :
1er choix:
+ categorie1
- sous categorie1
-- Affichage des resultat du 1er choix
2eme choix:
+ categorie2
- sous categorie2
-- Affichage des resultat du 2eme choix
-- Affichage des resultat du 1er choix (c'est la le probleme)
ci-joint mes codes:
index.php:
<form>
<select name="users" onchange="showUser(this.value)">
<option value="0" disabled="disabled" selected="selected">- Select Make</option>
<option value="1">الشيوخ</option>
<option value="2">البلدان</option>
<option value="3">الروايات</option>
<option value="4">التلاوات</option>
</select>
<span id="txtHint"></span> <!-- Affichage de la 2eme liste -->
<span id="txtHint2"></span> <!-- Affichage du resultat de la fonction showUser2 -->
<span id="txtHint3"></span> <!-- Affichage du resultat de la fonction showUser3 -->
<span id="txtHint4"></span> <!-- Affichage du resultat de la fonction showUser4 -->
</form>
main.js::
function showUser(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","Sawtiyat/Quoran/test.php?id="+str,true);
xmlhttp.send();
}
function showUser2(str)
{
if (str=="")
{
document.getElementById("txtHint2").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint2").innerHTML=xmlhttp.responseText;
}
}
str=encodeURI(str);
xmlhttp.open("GET","Sawtiyat/Quoran/sheikh_selected.php?sheikh_ar="+str,true);
xmlhttp.send();
}
function showUser3(str)
{
if (str=="")
{
document.getElementById("txtHint3").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint3").innerHTML=xmlhttp.responseText;
}
}
str=encodeURI(str);
xmlhttp.open("GET","Sawtiyat/Quoran/riwaya_selected.php?riwaya="+str,true);
xmlhttp.send();
}
function showUser4(str)
{
if (str=="")
{
document.getElementById("txtHint4").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint4").innerHTML=xmlhttp.responseText;
}
}
str=encodeURI(str);
xmlhttp.open("GET","Sawtiyat/Quoran/nationality_selected.php?nationality="+str,true);
xmlhttp.send();
}
test.php:
<?php
//print_r($_GET);
$id = $_GET['id'];
echo 'id'.$id.'<br>';
if ($id == '1')
{
//$theorder = 'sheikh_ar';
include 'sheikh_ar.php';
}
if ($id == '2')
{
//$theorder = 'riwaya';
include 'nationality.php';
}
if ($id == '3')
{
//$theorder = '';
include 'riwaya.php';
}
if ($id == '4')
{
//$theorder = '';
include 'tilawa.php';
}
?>
sheikh_ar.php:
<?php
print_r($_GET);
include '../../Included_Files/Connect.php';
// selection DB sawtiyat
mysql_select_db($db_sawtiyat) or die ('Erreur de selection de la BD sawtiyat: '.mysql_error());
// selectionner tous les shiekhs
$select_qr = 'SELECT DISTINCT sheikh_ar FROM sheikh_tbl WHERE quoran=1';
echo '<font color="red">'.$select_qr.'</font><br>';
$query_qr = mysql_query($select_qr) OR DIE (mysql_error());
$nb = mysql_num_rows($query_qr);
//echo 'total: <font color="green">'.$nb.'</font><br>';
echo ' <select name="users2" onchange="showUser2(this.value)">
<option value="-1" disabled="disabled" selected="selected">- Select Make</option>
<option value="0">جميع المقرئين</option>
';
while ($row_qr = mysql_fetch_array($query_qr))
{
// on extract les donnees
extract($row_qr);
echo '<option value="'.$sheikh_ar.'">'.$sheikh_ar.'</option>';
echo $sheikh_en.' '.$sheikh_ar;
echo $riwaya.' ';
echo $nationality.' ';
}
echo '</select>';
//echo '</form>';
?>
sheikh_selected.php:
<?php
print_r($_GET);
include '../../Included_Files/Connect.php';
include '../../Included_Files/Functions.php';
// selection DB sawtiyat
mysql_select_db($db_sawtiyat) or die ('Erreur de selection de la BD sawtiyat: '.mysql_error());
$select_qr2 = 'SELECT * FROM sheikh_tbl WHERE quoran=1 AND sheikh_ar = "'.$sheikh_ar.'"';
//echo '<font color="red">'.$select_qr2.'</font><br>';
$query_qr2 = mysql_query($select_qr2) OR DIE (mysql_error());
$nb2 = mysql_num_rows($query_qr2);
//echo 'total: <font color="green">'.$nb2.'</font><br>';
echo '<table width="700" align="center" cellpadding="5">';
echo '<tr align="center" bgcolor="#42afdc"><td colspan="4">';
echo 'عدد النتائج: '.$nb2;
//echo ' ';
//echo '[ <a href="Idara/generer.php?menu=Demandq" rel="gb_page[800, 400] title="أنقر هنا لطلب مقرئ جديد ">طلب قارئ جديد </a>]';
//echo ' ';
//echo '[ طلبات تحت الإنتظار ' .$nbq.' ]';
echo '</td>';
while ($row_qr2 = mysql_fetch_array($query_qr2))
{
// on extract les donnees
extract($row_qr2);
if ($i%4 == 0) echo '<tr align="center">';
$i++;
$filename = '../../'.$path2sheikh.$sheikh_en.'.png';
$print_filename = $path2sheikh.$sheikh_en.'.png';
//echo $filename.'<br>';
echo '<td width="160"><a href="Sawtiyat-Quoran-'.$sheikh_en.'-id_shk'.$id_shk.'.html" class="Link01">';
if (file_exists($filename)) {
$pic = '<img src="'.$print_filename.'" width="120" height="120" class="shadow" />';
} else {
$pic = '<img src="'.$path2sheikh.'Unknown.png" width="120" height="120" class="shadow" />';
}
echo $pic;
$numbers = array (1,2,3,4);
$tilawat = array ('مرتل', 'مجود');
$riwayat = array ('حفص عن عاصم', 'ورش عن نافع', 'حمزة عن خلف', 'السوسي عن أبي عمرو');
$riwaya = str_replace ($numbers, $riwayat, $riwaya);
$tilawa = str_replace ($numbers, $tilawat, $tilawa);
echo '</a>';
echo '<br>';
echo '<b>'.$sheikh_ar.'</b><br>';
echo '<b>'.$tilawa.'</b><br>';
echo '<b>'.$riwaya.'</b><br>';
// selection DB sawtiyat
//mysql_select_db($db_sawtiyat) or die ('Erreur de selection de la BD sawtiyat: '.mysql_error());
$select_s = 'SELECT COUNT(*) FROM sheikh_reciting WHERE id_shk2 = "'.$id_shk.'"';
//echo $select_s;
$result_s = mysql_query($select_s) OR DIE ('Unable to select recitings'. mysql_error());
$data_s = mysql_fetch_array($result_s);
//echo $data_s[0];
echo 'عدد السور: ';
if ($data_s[0] == '114')
{
$data_s[0] = '<img src="'.$path2icons.'mushaf.gif" width="20" height="20" alt="المصحف كاملا" title="المصحف كاملا" />';
}
else
{
$data_s[0] = $data_s[0];
}
echo $data_s[0];
//echo '<br>';
//echo 'رواية: '.$riwaya;
//echo '<br>';
//include 'Files/Votes/votes_result.php';
echo '</td>';
if ($i%4 ==0)echo "</tr>";
}
echo '</table>';
?>
nationality.php:
<font color="gray">nationality</font><br />
<?php
print_r($_GET);
include '../../Included_Files/Connect.php';
// selection DB sawtiyat
mysql_select_db($db_sawtiyat) or die ('Erreur de selection de la BD sawtiyat: '.mysql_error());
// selectionner tous les shiekhs
$select_qr = 'SELECT DISTINCT nationality FROM sheikh_tbl WHERE quoran=1';
echo '<font color="red">'.$select_qr.'</font><br>';
$query_qr = mysql_query($select_qr) OR DIE (mysql_error());
$nb = mysql_num_rows($query_qr);
//echo 'total: <font color="green">'.$nb.'</font><br>';
echo ' <select name="users2" onchange="showUser4(this.value)">
<option value="-1" disabled="disabled" selected="selected">- Select Make</option>
<option value="0">جميع البلدان</option>
';
while ($row_qr = mysql_fetch_array($query_qr))
{
// on extract les donnees
extract($row_qr);
echo '<option value="'.$nationality.'">'.$nationality.'</option>';
echo $sheikh_en.' '.$sheikh_ar;
echo $riwaya.' ';
echo $nationality.' ';
}
echo '</select>';
?>
nationality_selected.php:
<font color="gray">nationality selected</font><br />
<?php
print_r($_GET);
include '../../Included_Files/Connect.php';
include '../../Included_Files/Functions.php';
$nationality = $_GET['nationality'];
echo 'testbis nationality'.$nationality.'<br>';
// selection DB sawtiyat
mysql_select_db($db_sawtiyat) or die ('Erreur de selection de la BD sawtiyat: '.mysql_error());
$select_qr2 = 'SELECT * FROM sheikh_tbl WHERE quoran=1 AND nationality = "'.$nationality.'"';
echo '<font color="red">'.$select_qr2.'</font><br>';
$query_qr2 = mysql_query($select_qr2) OR DIE (mysql_error());
$nb2 = mysql_num_rows($query_qr2);
//echo 'total: <font color="green">'.$nb2.'</font><br>';
echo '<table width="700" align="center" cellpadding="5">';
echo '<tr align="center" bgcolor="#42afdc"><td colspan="4">';
echo 'عدد النتائج: '.$nb2;
//echo ' ';
//echo '[ <a href="Idara/generer.php?menu=Demandq" rel="gb_page[800, 400] title="أنقر هنا لطلب مقرئ جديد ">طلب قارئ جديد </a>]';
//echo ' ';
//echo '[ طلبات تحت الإنتظار ' .$nbq.' ]';
echo '</td>';
while ($row_qr2 = mysql_fetch_array($query_qr2))
{
// on extract les donnees
extract($row_qr2);
if ($i%4 == 0) echo '<tr align="center">';
$i++;
$filename = '../../'.$path2sheikh.$sheikh_en.'.png';
$print_filename = $path2sheikh.$sheikh_en.'.png';
//echo $filename.'<br>';
echo '<td width="160"><a href="Sawtiyat-Quoran-'.$sheikh_en.'-id_shk'.$id_shk.'.html" class="Link01">';
if (file_exists($filename)) {
$pic = '<img src="'.$print_filename.'" width="120" height="120" class="shadow" />';
} else {
$pic = '<img src="'.$path2sheikh.'Unknown.png" width="120" height="120" class="shadow" />';
}
echo $pic;
$numbers = array (1,2,3,4);
$tilawat = array ('مرتل', 'مجود');
$riwayat = array ('حفص عن عاصم', 'ورش عن نافع', 'حمزة عن خلف', 'السوسي عن أبي عمرو');
$riwaya = str_replace ($numbers, $riwayat, $riwaya);
$tilawa = str_replace ($numbers, $tilawat, $tilawa);
echo '</a>';
echo '<br>';
echo '<b>'.$sheikh_ar.'</b><br>';
echo '<b>'.$tilawa.'</b><br>';
echo '<b>'.$riwaya.'</b><br>';
echo 'عدد السور: ';
if ($data_s[0] == '114')
{
$data_s[0] = '<img src="'.$path2icons.'mushaf.gif" width="20" height="20" alt="المصحف كاملا" title="المصحف كاملا" />';
}
else
{
$data_s[0] = $data_s[0];
}
echo $data_s[0];
//echo '<br>';
//echo 'رواية: '.$riwaya;
//echo '<br>';
//include 'Files/Votes/votes_result.php';
echo '</td>';
if ($i%4 ==0)echo "</tr>";
}
echo '</table>';
?>
Le probleme c'est l'affichage des resultats, par exemple:Je selectionne la categorie "Sport", apres je selectionne la sous categorie "Foot-Ball", donc j'ai deux listes, une pour les categories et l'autre pour les sous categories, il m'affiche un resultat de ma selection:
+ Ici la liste des categories "Sport"
++ Ici la liste des sous categories "Foot-Ball"
+++ Ici le resultat de ma selection
Si je veux changer de categorie, par exemple "Education" et je choisis la sous categorie "Lycee", il me donne un resultat comme suivant:
+ Ici la liste des categories "Education"
++ Ici la liste des sous categories "Lycee"
+++ Ici le resultat de ma selection qui est la premiere selection "Sport & Foot"
++++ Ici le resultat de ma selection qui est l'actuel selection "Education-Lycee".
Ca donne le resultat de la premiere selection suivi de la 2eme selection (le resultat du 1er choix et en dessous le resultat du 2eme choix)
Merci d'avance