2010-01-28 6 views
3

Je suis en train de créer une fonction de recherche simple où un utilisateur sélectionne une option dans un menu déroulant et clique sur une carte pour voir les résultats pour ces 2 paramètresJavaScript pour soumettre le formulaire plus une valeur de la zone de carte?

J'ai ce php en haut de mon doc:

<?php if ((isset($_POST["MM_search"])) && ($_POST["MM_search"] == "yes")){ 

$lang = $_POST['lang']; 
$salerent = $_POST['salerent']; 
$zone = $_POST['zone']; 

$updateGoTo = '/'.$lang.'/'.$salerent.'/'.$zone.'/results.html'; 

    header("Location: $updateGoTo"); 


} ?> 

j'ai ce javascript et la forme:

<form id="form1" name="form1" method="post" action="<?php $_SERVER['PHP_SELF'];?>"> 
<select name="salerent" id="salerent"> 
<option value="forsale" selected="selected">For Sale</option> 
<option value="forrent">For Rent</option> 

</select> 


<script type="text/javascript" language="javascript"> 

function submitMyForm(aForm, val) 
{ 
aForm.zone.value = val; 
aForm.submit() 
} 
</script> 


<input type="hidden" name="lang" value="en" /> 
<p><img src="images/maps/island.gif" alt="Search" width="150" height="150" border="0" usemap="#Map" id="Image1" /> 
<map name="Map" id="Map"> 

<area shape="poly" coords="65,30,71,49,83,52,88,63,98,67,104,55,108,41,114,38,126,36,135,34,135,19,120,17,116,10,87,18" onclick="javascript:submitMyForm('document.form1','san-juan')" name="zone" id="zone" value="san-juan" alt="San Juan" onmouseover="MM_swapImage('Image1','','images/maps/juan.gif',1)" onmouseout="MM_swapImgRestore()" /> 

Je reçois aForm.zone est indéfini dans de Firebug, mais suspect qui ne va pas travailler comme ça de toute façon ... quelqu'un peut-il aider s'il vous plaît ?

Merci

Répondre

2

au lieu d'attribuer la valeur à la zone de la zone, créer un champ de formulaire caché, avec un nom différent, qui contiendra cette valeur pour vous.

Dans votre code javascript:

function submitMyForm(aForm, val) { 
aForm.aHiddenZone.value = val; 
aForm.submit() 
} 

et plus tard dans votre formulaire html:

<input type="hidden" name="aHiddenZone" value="" /> 
+1

Salut, merci pour la réponse qui fonctionne ... Je devais aussi retirer le '' de 'document.form1' à: submitMyForm (document.form1, 'san-juan') Merci beaucoup pour votre aide. – Peter