Bonjour,
Je tente de gérer 2 cas de figure dans un formulaire d'inscription :
1) le visiteur est résident US (par défaut) et il entre son Zipcode dans un inputbox
2) le visiteur ne réside pas aux US et je dois lui proposer la liste des pays
Ca revient donc à changer l'inputbox en listbox. Pourquoi? parce que cet inputbox est généré par un autre script (php) auquel je ne peux pas toucher car il est utilisé pour d'autres fonctions...
. Mais je dois rendre ce champ modifiable par son "propriétaire" !
Autre soucis, ce champ ne possède pas d'ID mais un seulement "name" et une classe commune à d'autres champs :
Heureusement, j'ai prototype.js à ma disposition (version 1.5.0_rc0) qui ne m'est malheureusement pas familier.
voici donc la fonction getCountries appelée au chargement:
Extrait de getCountries.php (qui fonctionne bien):
Vu le code retourné par cette fonction, ça ne colle pas avec mon objCountry, il faut que j'applique ce flux html à son objet parent.
Et c'est là mon problème : comment je déclare le parent de objCountry?
Modifié par globule (18 Jan 2007 - 18:31)
Je tente de gérer 2 cas de figure dans un formulaire d'inscription :
1) le visiteur est résident US (par défaut) et il entre son Zipcode dans un inputbox
2) le visiteur ne réside pas aux US et je dois lui proposer la liste des pays
Ca revient donc à changer l'inputbox en listbox. Pourquoi? parce que cet inputbox est généré par un autre script (php) auquel je ne peux pas toucher car il est utilisé pour d'autres fonctions...

Autre soucis, ce champ ne possède pas d'ID mais un seulement "name" et une classe commune à d'autres champs :
<tr>
<td class="titleCell">State:</td>
<td colspan="1" class="fieldCell"><input class="inputbox" mosLabel="State" type="text" name="v_state" value="" /></td>
<td colspan='2'></td>
</tr>
<tr>
<td class="titleCell">Country:</td>
<td colspan="1" class="fieldCell"><input class="inputbox" mosLabel="Country" type="text" name="v_country" value="FRA" /></td>
<td colspan='2'></td>
</tr>
Heureusement, j'ai prototype.js à ma disposition (version 1.5.0_rc0) qui ne m'est malheureusement pas familier.
voici donc la fonction getCountries appelée au chargement:
function getCountries(){
thisform= document.adminForm;
var colFields = thisform.elements;
fldState = colFields["vital_state"]; //adminForm
fldCountry = colFields["vital_country"]; //adminForm
obj = $F(fldCountry);
objCountry = $F(fldCountry);
if (fldState.value == "")
{
alert ("no state, country = " + objCountry );
ajax = new Ajax.Updater(
objCountry,
'get_countries.php',
{method:'get'}
); // does not work, update objCountry parent
} else {
alert ("state = "+ fldState.value);
fldCountry.value = 'USA';
}
}
Extrait de getCountries.php (qui fonctionne bien):
...
$html .= "<div id='selectCountry'>";
$html .= "<label>Country </label>";
$html .= "<select name='country' id='country'>";
while($array = mysql_fetch_array($result)) {
$html .= "<option value=" . $array['code'] . ">" . $array['name'] . "</option>";
}
$html .= "</select>";
$html .= "</div>";
echo $html;
Vu le code retourné par cette fonction, ça ne colle pas avec mon objCountry, il faut que j'applique ce flux html à son objet parent.
Et c'est là mon problème : comment je déclare le parent de objCountry?
Modifié par globule (18 Jan 2007 - 18:31)