Je précise ce que je souhaite.
C'est récupérer dans la page principale "boutique00.php", le contenu de la variable $ind ou $_REQUEST['ix'] de "ajaxcategorie04.php" !
Cette valeur va me permettre ainsi d'accéder directement à une bdd
dont l'id sera justement cette valeur !
Je précise aussi que cet id n'est connu qu'après sélection de choix effectués dans les 4 listes liées dynamiques.
Aidez-moi, svp !
Quelque chose m'échappe.
Cela doit être évident pour vous.
J'ai tout relu un nombre certain de docs sur XMLHttpRequest, mais je n'ai toujours pas trouvé de solution !
Au secours !
Cela va être long, mais je vous mets tous les codes utiles au bon fonctionnement.
D'avance, je vous remercie pour l'attention portée à mon post !
Néanmoins tout ceci se trouve sur :
www.creaprint.be/new/boutique00.php
Voici "ajaxcategorie04.php"' :
<?php
require_once("connexionMysql.inc.php");
if (isset($_REQUEST['ix'])) {
$query = mysql_query("SELECT * FROM shop_articles".
" WHERE id=".$_REQUEST['ix']);
while ($back = mysql_fetch_assoc($query)) {
$ind = $_REQUEST['ix'];
}
}
?>
Voici "ajaxcategorie03.php" :
<?php
require_once("connexionMysql.inc.php");
echo "<select name='categorie03' id='categorie03' style='width:280px;' onchange='gocategorie03()'>";
if (isset($_REQUEST['ix'])) {
$query = mysql_query("SELECT * FROM shop_categorie03".
" WHERE parent=".$_REQUEST['ix'].
" ORDER BY id");
echo "<option value='none' ><span style='width:100%;' >-- Choisissez, svp ! --</span></option>";
while ($back = mysql_fetch_assoc($query)) {
echo "<option value='".$back['id']."' ><span style='width:100%;' >".$back['libelle']."</span></option>";
}
}
echo "</select>";
?>
Voici "ajaxcategorie02.php" :
<?php
require_once("connexionMysql.inc.php");
echo "<select name='categorie02' id='categorie02' style='width:280px;' onchange='gocategorie02()'>";
if (isset($_REQUEST['ix'])) {
$query = mysql_query("SELECT * FROM shop_categorie02".
" WHERE parent=".$_REQUEST['ix'].
" ORDER BY id");
echo "<option value='none' ><span style='width:100%;' >-- Choisissez, svp ! --</span></option>";
while ($back = mysql_fetch_assoc($query)) {
echo "<option value='".$back['id']."' ><span style='width:100%;' >".$back['libelle']."</span></option>";
}
}
echo "</select>";
?>
Voici "ajaxcategorie01.php" :
<?php
require_once("connexionMysql.inc.php");
echo "<select name='categorie01' id='categorie01' style='width:280px;' onchange='gocategorie01()'>";
if (isset($_REQUEST['ix'])) {
$query = mysql_query("SELECT * FROM shop_categorie01".
" WHERE parent=".$_REQUEST['ix'].
" ORDER BY id");
echo "<option value='none' ><span style='width:100%;' >-- Choisissez, svp ! --</span></option>";
while ($back = mysql_fetch_assoc($query)) {
echo "<option value='".$back['id']."' ><span style='width:100%;' >".$back['libelle']."</span></option>";
}
}
echo "</select>";
?>
Voici toutes les fonctions javascript entre head et /head :
<script type="text/javascript">
<!--
// Retourne la valeur du select selectId
function getSelectValue(selectId) {
// On récupère l'élément HTML <select>
var selectElmt = document.getElementById(selectId);
// Correspond au tableau des balises <option> du select
selectElmt.options;
selectElmt.selectIndex;
// Correspond à l'index du tableau options qui est actuellement sélectionné
return selectElmt.options[selectElmt.selectedIndex].value;
}
var xhr = null;
// XMLHttpRequest
function getXhr() {
if (window.XMLHttpRequest)
//Firefox et autres
xhr = new XMLHttpRequest();
else
// Internet Explorer
if(window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
} else {
// XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
xhr=false;
}
}
// categorie00
function gocategorie00() {
getXhr();
// On définit ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function() {
// On ne fait quelquechose que si l'on a tout reçu et que le serveur est OK
if (xhr.readyState == 4 && xhr.status == 200) {
document.getElementById("loader00").style.display = "none";
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options à la liste
document.getElementById('td01').innerHTML = leselect;
} else {
document.getElementById("loader00").style.display = "inline";
}
}
// Ici on va voir comment faire du post
xhr.open("POST","php/ajaxcategorie01.php",true);
// Ne ps oublier ç pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// Ne ps oublier de poster les arguments
// ici l'id de cat00
sel = document.getElementById('categorie00');
idcategorie00 = sel.options[sel.selectedIndex].value;
xhr.send("ix="+idcategorie00);
// Ouverture du tableau devis
var selectValue = getSelectValue('categorie00');
if (selectValue == "" || selectValue == "none") {
hidden = 1;
} else {
hidden = 2;
}
document.getElementById("tr01").style.display = "";
for (hidden; hidden<11; hidden++) {
document.getElementById("tr0"+hidden).style.display = "none";
}
}
// categorie01
function gocategorie01() {
getXhr();
// On définit ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function() {
// On ne fait quelquechose que si l'on a tout reçu et que le serveur est OK
if (xhr.readyState == 4 && xhr.status == 200) {
document.getElementById("loader01").style.display = "none";
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options à la liste
document.getElementById('td02').innerHTML = leselect;
} else {
document.getElementById("loader01").style.display = "inline";
}
}
// Ici on va voir comment faire du post
xhr.open("POST","php/ajaxcategorie02.php",true);
// Ne ps oublier ç pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// Ne ps oublier de poster les arguments
// ici l'id de cat01
sel = document.getElementById('categorie01');
idcategorie01 = sel.options[sel.selectedIndex].value;
xhr.send("ix="+idcategorie01);
// Ouverture du tableau devis
var selectValue = getSelectValue('categorie01');
if (selectValue == "" || selectValue == "none") {
hidden = 2;
} else {
hidden = 3;
}
document.getElementById("tr02").style.display = "";
for (hidden; hidden<11; hidden++) {
document.getElementById("tr0"+hidden).style.display = "none";
}
}
// categorie02
function gocategorie02() {
getXhr();
// On définit ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function() {
// On ne fait quelquechose que si l'on a tout reçu et que le serveur est OK
if (xhr.readyState == 4 && xhr.status == 200) {
document.getElementById("loader02").style.display = "none";
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options à la liste
document.getElementById('td03').innerHTML = leselect;
} else {
document.getElementById("loader02").style.display = "inline";
}
}
// Ici on va voir comment faire du post
xhr.open("POST","php/ajaxcategorie03.php",true);
// Ne ps oublier ç pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// Ne ps oublier de poster les arguments
// ici l'id de cat01
sel = document.getElementById('categorie02');
idcategorie02 = sel.options[sel.selectedIndex].value;
xhr.send("ix="+idcategorie02);
// Ouverture du tableau devis
var selectValue = getSelectValue('categorie02');
if (selectValue == "" || selectValue == "none") {
hidden = 3;
} else {
hidden = 4;
}
document.getElementById("tr03").style.display = "";
for (hidden; hidden<11; hidden++) {
document.getElementById("tr0"+hidden).style.display = "none";
}
}
// categorie03
function gocategorie03() {
getXhr();
// On définit ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function() {
// On ne fait quelquechose que si l'on a tout reçu et que le serveur est OK
if (xhr.readyState == 4 && xhr.status == 200) {
document.getElementById("loader03").style.display = "none";
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options à la liste
document.getElementById('td04').innerHTML = leselect;
} else {
document.getElementById("loader03").style.display = "inline";
}
}
// Ici on va voir comment faire du post
xhr.open("POST","php/ajaxcategorie04.php",true);
// Ne ps oublier ç pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// Ne ps oublier de poster les arguments
// ici l'id de cat01
sel = document.getElementById('categorie03');
idcategorie03 = sel.options[sel.selectedIndex].value;
xhr.send("ix="+idcategorie03);
// Ouverture du tableau devis
var selectValue = getSelectValue('categorie03');
if (selectValue == "" || selectValue == "none") {
hidden = 5;
} else {
hidden = 6;
}
document.getElementById("tr04").style.display = "";
document.getElementById("tr05").style.display = "";
document.getElementById("tr06").style.display = "";
document.getElementById("tr07").style.display = "";
document.getElementById("tr08").style.display = "";
document.getElementById("tr09").style.display = "";
document.getElementById("tr10").style.display = "";
for (hidden=11; hidden<11; hidden++) {
document.getElementById("tr0"+hidden).style.display = "none";
}
}
-->
</script>
Voici la partie du html où se passe tout cela :
<table id="tableoptions" border="0" cellspacing="0" style="vertical-align:middle;">
<tr>
<td width="150"></td>
<td width="280"></td>
<td width="20"></td>
</tr>
<tr>
<td colspan="3" style="padding:7px;" bgcolor="#0E72B5" class="blanc bold">Prix en ligne instantané</td>
</tr>
<tr>
<td colspan="3" style="padding:7px;">
Afin d'établir un devis,<br>veuillez choisir parmi toutes les options suivantes :</td>
</tr>
<tr id="tr00">
<td width="150" style="padding:7px;">Document</td>
<td width="280" id="td00">
<select name="categorie00" id="categorie00" style="width:280px;" onChange="gocategorie00();" >
<option value="none">-- Choisissez, svp ! --</option>
<?php
require_once("php/connexionMysql.inc.php");
$query = mysql_query("SELECT * FROM shop_categorie00 ORDER BY id");
while ($back = mysql_fetch_assoc($query)) {
echo "<option value='".$back['id']."' ><span style='width: 280px;' >".$back['libelle']."</span></option>";
}
?>
</select>
</td>
<td width="20">
<span id="loader00" class="hidden"><img src="images/boutique/loader16.gif" alt="loading" /></span>
</td>
</tr>
<tr id="tr01" style="display:none;">
<td width="150" style="padding:7px;">Descriptif</td>
<td width="280" id="td01">
<!-- <select name="categorie01" id="categorie01" style="width:280px;"></select> -->
</td>
<td width="20">
<span id="loader01" class="hidden"><img src="images/boutique/loader16.gif" alt="loading" /></span>
</td>
</tr>
<tr id="tr02" style="display:none;">
<td width="150" style="padding:7px;">Format</td>
<td width="280" id="td02">
<!-- <select name="categorie02" id="categorie02" style="width:280px;"></select> -->
</td>
<td width="20">
<span id="loader02" class="hidden"><img src="images/boutique/loader16.gif" alt="loading" /></span>
</td>
</tr>
<tr id="tr03" style="display:none;">
<td width="150" style="padding:7px;">Papier</td>
<td width="280" id="td03">
<!-- <select name="categorie03" id="categorie03" style="width:280px;"></select> -->
</td>
<td width="20">
<span id="loader03" class="hidden"><img src="images/boutique/loader16.gif" alt="loading" /></span>
</td>
</tr>
<tr id="tr04" style="display:none;">
<td width="150"></td>
<td width="280"></td>
<td width="20"></td>
</tr>
<?php
$ind = $_REQUEST['ix'];
echo "ind = ".$ind;
?>
<tr id="tr05" style="display:none;">
<td width="150"></td>
<td width="280">
<?php
echo "ind. ".$ind."<br/>";
echo "réf. ".$ref."<br/>";
echo "com ".$com."<br/>";
?>
</td>
<td width="20"></td>
</tr>
<tr id="tr06" style="display:none;">
<td width="150" style="padding:7px;"> </td>
<td width="280">
<?php
echo "com. ".$com;
?></td>
<td width="20"></td>
</tr>
<tr id="tr07" style="display:none;">
<td width="150" style="padding:7px;">Prix d'impression</td>
<td width="280" id="td04"><span class="c14 bold"><?php echo $pvht."€ HT"; ?></span><span class="c10"><?php echo "( ".$pvht."€ TTC)"; ?></span></td>
<td width="20"></td>
</tr>
<tr id="tr08" style="display:none;">
<td width="150"></td>
<td width="280"></td>
<td width="20"></td>
</tr>
<tr id="tr09" style="display:none;">
<td width="150" style="padding:7px;"> </td>
<td width="280" id="td05"><a href="panier.php">Ajouter au panier</a></td>
<td width="20"></td>
</tr>
<tr id="tr10" style="display:none;">
<td width="150" style="padding:7px;"> </td>
<td width="280" id="td05"><a href="panier.php">Ajouter au panier</a></td>
<td width="20"></td>
</tr>
</table>
Modifié par jytest (22 Nov 2011 - 10:17)