[英]Dropdown reload page then retrieve value
您好,到目前为止,我一直在尝试使用这一行代码,我的目标是通过select重新加载页面,然后select获取值,以便页面将使用上述值重新加载,这样我就可以检索到它。 两者均为1形式。 这是我应该在重新加载后得到我要使用的值的地方。
<input type="hidden" name="student_id" class="typed" readonly="readonly" value="<?php echo @$get_display->student_id;?>">
这就是我试图用来在获取上述值时重新加载页面的原因。
<select name="lvl" onchange="window.location='search_enroll.php?id='$_GET['student_id']">
任何帮助表示赞赏,谢谢。
这是我检索的方式,我在上一条语句中遇到问题,它应该是在重新加载后检索值。
if (!empty($_POST['searchstudent'])){
$id = $_POST['searchstudent'];
}else if(!empty($_GET['id'])){
$id = $_GET['id'];
}
else {
$id= $_GET['student_id'];
}
当你写
<select name="lvl" onchange="window.location='search_enroll.php?id='$_GET['student_id']">
实际上,您导航到将您带到该页面的同一student_id。
您想问的是“用户选择了哪个student_id?” 并在下一页加载中使用。
HTML应该看起来像
<form action="search_enroll.php">
<select name="id" onchange="submit()">
<option> student_id_1 </option>
<option> student_id_2 </option>
...
</select>
</form>
让我知道是否有任何问题。
这是一个JSFiddle来模拟重新加载。 (它会显示404,因为“ search_enroll.php”不存在,但您仍然可以看到重新加载有效。)
编辑:在我解释了此选择的目的之后,添加了“隐藏”输入字段
如果您有2个字段(student_id,grade),则应在表单中添加一个隐藏的输入字段。 该表格应如下所示:
<form action="search_enroll.php">
<input value="<?php echo $_GET['student_id']?>" type="hidden"/>
<select name="grade" onchange="submit()">
<option> student_id_1 </option>
<option> student_id_2 </option>
...
</select>
</form>
这将确保之前选择了哪个用户的student_id会传递到另一次重新加载。
如果您使用的是表单,则可以在更改后提交表单:
onchange="document.yourForm.submit()"
所有参数将可用于您的PHP脚本。
您不想在select
元素中使用PHP,因为在生成页面(服务器响应)时会填充PHP,但是您要执行的操作是在将请求发送到服务器时填充它。
最简单的方法是使用onchange="document.aForm.submit()"
简单地提交具有该字段更改值的表单。 您的服务器端验证将需要能够理解这是部分提交,并且错误消息不应显示给用户。
针对海报者的问题:
您有以下一系列事件:
select
元素中填充了option
元素。 select
元素的option
元素。 option
( 以某种方式 )。 option
元素已预先选择。 服务器无法在步骤1预先填充select
元素的onchange
属性(并且不应在步骤5预先填充,因为客户端可以更改其选择); 服务器不知道客户端将选择哪个选项,直到客户端在第3步中选择并在第4步将该选项发送给服务器。
我和其他人建议使用submit()
而不是window.location
是,对于表单,客户端可以按任何顺序填写字段,或者您可以稍后在select
之前添加字段,在这种情况下,选择要保留。 如果PHP在生成表单时从POST
对象获取了所有字段,则submit
保留这些字段。 如果使用window.location
,则所有未包含在GET
请求中的内容都会丢失。
如果确实要使用window.location
,那么必须使用JavaScript来获取路径的所选option
的值(类似?id=document.aForm.selectElement.options[document.aForm.selectElement.selectedIndex]
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.