[アクション]ボタンを押したときに同じページに渡す必要のあるいくつかの変数値を含む、選択項目と他の2つの非表示の入力を表示するフォームがあります。しかし、これらの変数が「ニューヨーク」のような都市名であるという問題があります。そのため、名前の中にスペースがあり、変数を渡す時点では「新しい」のみが渡されます。スペースがそれに合う後は何もありません。これらの変数にスペースがあってはならないことを読みましたが、これをどのように行う必要がありますか?
これが私のサンプルコードです:
// at the beginning of the code I get this variables pass from other pages
$pais=$_GET['pais'];
$name=$_GET['nombre'];
// this is how I query my table to populate my select item
$SN=mysql_real_escape_string($name);
$SP=mysql_real_escape_string($pais);
$estadoquery = "SELECT * FROM `".$SP."` ORDER BY Estado ASC";
$estadoresult = mysql_query($estadoquery);
// this is how I make my form
<form method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
<input type="HIDDEN" name=nombre value="<? echo $SN ?>">
<input type="HIDDEN" name=pais value="<? echo $SP ?>">
<th scope="col" align="center" valign="baseline" size="18px">
<select name=estado id="estado" style="font-size:24px">
<option value="">Todos</option>
<?
while($rowp = mysql_fetch_array($estadoresult)) {
$estado = $rowp['Estado'];
$Se=mysql_real_escape_string($estado);
?>
<option value=<?php echo $Se ?>>
<?php echo $Se ?></option>
<? } ?>
</select>
</th>
<th scope="col" align="center" valign="baseline">
<input type="SUBMIT" name="ACTION" value="IR">
</th></form>
// and this is what the button action does
if(@$_POST['ACTION']=='IR')
{
$pais = $_POST['pais'];
$name = $_POST['nombre'];
$estado = $_POST['estado'];
$pais = mysql_escape_string($pais);
$name = mysql_escape_string($name);
$estado = mysql_escape_string($estado);
// this next echos are just to check my variables.
echo $pais;
echo $name;
echo $estado; // so here I can tell that this variable is not complete
}
また、変数をスペースで渡すことはできないことを読みましたが、$pais
変数「United States」がスペースを挟んで正しく渡されるのはなぜですか?<option value=<?php echo $Se ?>>
誰かがこれを達成する方法や、スペースを通過できるように私を変換する方法を教えてもらえますか?