我有一个表单,我在其中显示一个选择项和另外两个不可见的输入,其中包含一些变量值,我需要在按下“操作”按钮时将这些值传递到同一页面。但我遇到的问题是这些变量是像“纽约”这样的城市名称,因此名称中有一个空格,并且在传递变量时只有“New”被传递;空间随之消失后什么也没有。我读到这些变量中不应该有任何空格,那么我应该怎么做呢?
这是我的示例代码:
// 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
变量“美国”是否正确传递了中间的空格?
有人能告诉我如何实现这个或如何转换我的 <option value=<?php echo $Se ?>>
所以它可以通过空间?
最佳答案
根据我上面的评论:
问题是选项值周围没有引号。像这样改变它:
<option value="<?php echo $Se ?>">
然后你就可以开始了。
关于php - 如何在 PHP+HTML+SQL 中使用带空格的 GET 传递表单中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13103875/