我无法将php变量发布到另一个页面。该变量是从用户选择的下拉列表中检索的,如果它包含撇号,我只会在撇号发布前得到该部分。 I.E.如果我想发布“Cooper's Hawk”,我只会收到“Cooper”。如何正确地逃避这一点,以便我可以发布整个字符串?
这就是我所拥有的:
echo '<form method="POST" action="advanced_search2.php">';
$dropdown_english_name = "<select class = 'dropdown' name='english_name'> <option>ALL</option>";
$query = "SELECT DISTINCT english_name FROM moth_sightings WHERE user_id ='$username'ORDER BY english_name asc";
$result = mysql_query($query) or die(mysql_error());
echo "<tr><td>English Name:</td>";
while($row = mysql_fetch_assoc($result))
{
$dropdown_english_name .= "\r\n<option class = 'dropdown_active' value='{$row['english_name']}'>{$row['english_name']}</option>";
}
$dropdown_english_name .= '\r\n</select>';
echo '<td>' . $dropdown_english_name .'</td></tr>';
在不同的页面上
$posted_value = ($_POST['english_name']);
echo $posted_value;die;
因此,从上面的代码中可以看出,发布的字符串是“库珀鹰”,但回显的输出是“库珀”。 提前感谢任何提示。
答案 0 :(得分:3)
你可能通过生成
来打破你的形象 <select ...><option value='cooper's hawk'>...</option></select>
^---
使用该结构,您获得的提交值为cooper
,选项标记最终会显示两个未知属性s
和hawk
。在构建这样的html表单时要小心。您已以确保数据中的嵌入式引号不会从根本上改变html的结构,例如使用混合引号或编码引号:
values="cooper's hawk"
values="cooper's hawk"
都会奏效。请注意不同的引用样式。
答案 1 :(得分:1)
您可以使用php函数addslashes($variable)