select onchange et ecriture dans input

Répondre
anasha
le 26/09/2005 à 22:59
anasha
Bonjour à tous, je bloque un peu dans mon code, je touche pas trop en js et là, je vais pleurer... :(

J'ai une boucle for qui m'ecrit 15 lignes construites comme suit :
SELECT name="sel0" .... INPUT name="in0"
SELECT name="sel1" .... INPUT name="in1"
SELECT name="sel2" .... INPUT name="in2"
etc...

Le select est toujours le meme, seul le nom change avec l'indice, de meme pour les input.
Ce select contient une récupération de variables php de ma BDD.

J'aimerai faire un onChange sur le select qui afficherait dans le input correspondant (meme indice de ligne) une information elle aussi issue de ma BDD.

Toutes les requetes sont faites avant d'appeler la fonction javascript, mais ça ne fonctionne pas.

Voici ce que j'ai écrit :
<?php
$sql4 = 'SELECT code_article, des_courte, PHT, PTTC FROM silkad_article';
$req4 = mysql_query($sql4) or die('Erreur lors de la requête :<BR>'.$sql4.'<BR><BR>Voici l\'erreur retournée :<BR>'.mysql_error());

$select = '<OPTION VALUE=""></OPTION>';
while ($data4 = mysql_fetch_array($req4)) {
$code_article = $data4['code_article'];
$des_courte = $data4['des_courte'];
$PHT = $data4['PHT'];
$PTTC = $data4['PTTC'];
$select .= '<OPTION VALUE="'.$code_article.'">'.$code_article.' - '.$des_courte.'</OPTION>';
}
?>

<SCRIPT language="JavaScript">
function aff(numero) {
var chg_code = document.form.code_article+numero+.options [document.form.code_article+numero+.selectedIndex].value;
switch (chg_code) {
case 'AR00001':
document.form.prod+numero+.value="test";
break;
}
}
</SCRIPT>

<?php
for ($i=0; $i<15; $i++){
echo '<TR><TD><SELECT NAME="code_article'.$i.'" onChange="javascript:aff('.$i.')">
'.$select.'</SELECT>';
echo '<TD><INPUT TYPE="text" NAME="prod'.$i.'" SIZE="40" VALUE="">
<TD><INPUT TYPE="text" NAME="PUHT'.$i.'" SIZE="4">
<TD><INPUT TYPE="text" NAME="PUTT'.$i.'" SIZE="4">
<TD><INPUT TYPE="text" NAME="qte'.$i.'" SIZE="4">
<TD><INPUT TYPE="text" NAME="PTHT'.$i.'" SIZE="4">
<TD><INPUT TYPE="text" NAME="PTTT'.$i.'" SIZE="4">';
}
?>


Rq : j'ai mis un espace dans ma syntaxe js, pour pas tout niker le design de la globule ^^
Anasha [php-kiche-nomore]
anasha
le 27/09/2005 à 00:14
anasha
Bon j'ai trouvé une moitié de solution...

<?php
$sql4 = 'SELECT code_article, des_courte, PHT, PTTC FROM silkad_article';
$req4 = mysql_query($sql4) or die('Erreur lors de la requête :<BR>'.$sql4.'<BR><BR>Voici l\'erreur retournée :<BR>'.mysql_error());

$select = '<OPTION VALUE=""></OPTION>';
while ($data4 = mysql_fetch_array($req4)) {
$code_article = $data4['code_article'];
$des_courte = $data4['des_courte'];
$PHT = $data4['PHT'];
$PTTC = $data4['PTTC'];
$select .= '<OPTION VALUE="'.$des_courte.'/'.$PHT.'/'.$PTTC.'">'.$code_article.' - '.$des_courte.'</OPTION>';
}

for ($i=0; $i<15; $i++){
echo '<TR><TD><SELECT NAME="code_article'.$i.'" onChange="prod'.$i.'.value=code_article'.$i.'.value">
'.$select.'</SELECT>';
echo '<TD><INPUT TYPE="text" NAME="prod'.$i.'" SIZE="40" disabled>
<TD><INPUT TYPE="text" NAME="PUHT'.$i.'" SIZE="4">
<TD><INPUT TYPE="text" NAME="PUTT'.$i.'" SIZE="4">
<TD><INPUT TYPE="text" NAME="qte'.$i.'" SIZE="4">
<TD><INPUT TYPE="text" NAME="PTHT'.$i.'" SIZE="4">
<TD><INPUT TYPE="text" NAME="PTTT'.$i.'" SIZE="4">';
}
?>

Donc j'ai bien le value de l'option selectionnée qui s'affiche dans mon input...

Maintenant, histoire de pousser le vice, j'aimerai pouvoir "spliter" cette value, pour redistribuer les différentes variables obtenues dans d'autre input de la meme ligne.

Genre splitage[0] dans l'input prod$i, splitage[1] dans PUHT$i et splitage[2] dans PUTT$i
(heu splitage, c'est un mot barbare pour dire que c'est la variable resultant d'un split, mais comme je ne sais pas le faire :) )

Alors je bloque encore...
Siouplé, quelqu'un pour m'aider ?
Anasha [php-kiche-nomore]
anasha
le 27/09/2005 à 16:44
anasha
Bon j'ai fini par me dépatouiller toute seule, alors pour ceux que ca intéresse voilà le code (presque) final :

<?php
$sql4 = 'SELECT code_article, des_courte, des_longue, PHT, PTTC FROM silkad_article';
$req4 = mysql_query($sql4) or die('Erreur lors de la requête :<BR>'.$sql4.'<BR><BR>Voici l\'erreur retournée :<BR>'.mysql_error());

$select = '<OPTION VALUE=""></OPTION>';
while ($data4 = mysql_fetch_array($req4)) {
$code_article = $data4['code_article'];
$des_longue = $data4['des_longue'];
$des_courte = $data4['des_courte'];
$PHT = $data4['PHT'];
$PTTC = $data4['PTTC'];
$select .= '<OPTION VALUE="'.$des_longue.'/'.$PHT.'/'.$PTTC.'">'.$code_article.' - '.$des_courte.'</OPTION>';
}

for ($i=0; $i<15; $i++){
echo '<TR><TD><SELECT NAME="code_article'.$i.'" onChange="prod'.$i.'.value=code_article'.$i.'.value.split(\'/\')[0]; PUHT'.$i.'.value=code_article'.$i.'.value.split(\'/\')[1]; PUTT'.$i.'.value=code_article'.$i.'.value.split(\'/\')[2];">
'.$select.'</SELECT>';
echo '<TD><INPUT TYPE="text" NAME="prod'.$i.'" SIZE="40" disabled>
<TD><INPUT TYPE="text" NAME="PUHT'.$i.'" SIZE="4" STYLE="text-align:right" disabled>
<TD><INPUT TYPE="text" NAME="PUTT'.$i.'" SIZE="4" STYLE="text-align:right" disabled>
<TD><INPUT TYPE="text" NAME="qte'.$i.'" SIZE="4">
<TD><INPUT TYPE="text" NAME="PTHT'.$i.'" SIZE="4">
<TD><INPUT TYPE="text" NAME="PTTT'.$i.'" SIZE="4">';
}
?>
Anasha [php-kiche-nomore]
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours