variabili nei link, non riesco a passarle

  • Creatore Discussione Creatore Discussione Monital
  • Data di inizio Data di inizio

Monital

Utente Attivo
15 Apr 2009
778
2
18
Ragazzi un aiuto epr favore che sto diventando matto.

Sto suando questo form

PHP:
echo "<select class=\"select\" name=\"ID\" multiple=\"multiple\" size=\"$numero\" ondblclick=\"submit();\">";
foreach($nomi as $chiave => $valore){	
$stringa="lang=it&ID=$chiave";
echo  "<option value=".$stringa.">".$valore."</option>";		}
echo "</select></td></form>";
}

tralasciando tutto ciò che c'è prima, il problema e quando si da l'invio mi da questo link

/index.php?ID=lang%3Dit%26ID%3D188545

allora intanto non capisco cosa sbaglio nell'invio ma sopratutto perchè mi escono i caratteri html corrispondenti all' = e al seimbolo & ?
 
Ciao, mancano gli apici
PHP:
echo  "<option value=".$stringa.">".$valore."</option>";
correggi
PHP:
echo  "<option value='".$stringa."'>".$valore."</option>";
 
ciao ciric,

grazie maho scritto velcoemente il codice e non è un problema di apici.

in realtà era scritto così

PHP:
 echo  "<option value=\"".$stringa."\">".$valore."</option>";

cmq anche facendo come dici te non cambia niente. nel link continua a siostituirmi il simbolo = con %3D e il simbolo & con
 
ciao
intanto visto che usi multiple chiama la select name="ID[]"
poi ho fatto questa prova (ho messo il pulsante di submit e tirato fuori la select da php per fare prima)

PHP:
<?php
if(isset($_POST['invia'])){
	echo "<pre>";
	var_dump($_POST['ID']);
	echo "</pre>";
}
?>
<form action="#" method="post">
    <select class="select" name="ID[]" multiple="multiple" size="$numero" >
<?php
$nomi=array('11111'=>'pinco','22222'=>'pallo', '33333'=> 'pallino', '44444'=>'sempronio');
foreach($nomi as $chiave => $valore){    
	$stringa="lang=it&ID=$chiave";
	echo  "<option value=".$stringa.">".$valore."</option>";
} 
?>
    </select>

  <p>
    <input type="submit" name="invia" value="Invia">
</p>
</form>

selezionando pinco e pallino questo è l'output
array(2) {
[0]=>
string(16) "lang=it&ID=11111"
[1]=>
string(16) "lang=it&ID=33333"
}
cioè non vedo il tuo errore
 
ciao
allora intanto la select multiple mi serve solo erp far vedere più nomi ma solo uno se ne può cliccare e questo lo blocca l'evento
allora dagli il size non il multiple
per il fatto che ti restituisca
lang%3Dit%26ID%3D1111
probabilmente non dipende da li, ma forse da come ricevi il post
 
Ti conviene fare cosi
PHP:
<?php

$nomi = array("tiz", "car", "san", "pao");
echo "<form>";
echo "<input type='hidden' name='lang' value='it'/>";
echo "<select class='select' name='ID' multiple='multiple' size='4' ondblclick='submit();'>";
foreach ($nomi as $chiave => $valore) {
    echo "<option value='" . $chiave . "'>" . $valore . "</option>";
}
echo "</select>";
echo "</form>";
?>
 
ciao
io, visto che non deve essere multiple farei così per far vedere tutti i nomi
PHP:
<head>
<script type="text/javascript">
        function selectPost()
        {
            document.modulo.method = "post";
            document.modulo.action = "url????";
            document.modulo.submit();
        }
</script>

</head>
<!-- ecc....-->
<?php
//....
echo "<select class='select' name='ID'  size='".count($nomi)." onchange="selectPost()">";
//....
?>
 

Discussioni simili