【发布时间】:2016-02-16 21:34:50
【问题描述】:
我有一个简单的 HTML 选择选项,它应该自动发送OnChange。我应该说,表单似乎发送或“重新加载页面”。我没有在另一端得到任何数据。我试过POST 和GET 我已经重命名了表单数据的每个部分并更改了整个if(isset() 信息。任何想法为什么我没有得到任何数据?
表格:
<?php
$system1 = mysqli_fetch_assoc(mysqli_query($conn,
"SELECT * FROM ap_system_status WHERE system_id = '1'"));
$system_id_1 = $system1['system_id'];
$system_name_1 = $system1['system_name'];
$system_status_1 = $system1['system_status'];
?>
<strong><? echo $system_name_1; ?></strong>
<div align="right" style="float:right">
<div class="form-group">
<form action="" method="GET" id="system_status" name="system_status">
<input type="hidden" id="system_id" value="<? echo $system_id_1; ?>" />
<select class="form-control" onchange="this.form.submit()" id="status">
<option disabled="disabled" selected="selected" hidden="hidden"><? echo $system_status_1; ?></option>
<option value='<i class="fa fa-exclamation-triangle" style="color:#F60"></i> Experiencing Errors'>Experiencing Errors</option>
<option value='<i class="fa fa-exclamation-triangle" style="color:#F60"></i> Being Updated'>Being Updated</option>
<option value='<i class="fa fa-exclamation-triangle" style="color:#F60"></i> Maintenance Mode'>Maintenance Mode</option>
<option value='<i class="fa fa-times-circle-o" style="color:#F00"></i> System Offline'>System Offline</option>
<option value='<i class="fa fa-check-circle-o" style="color:#090"></i> Good Service'>Good Service</option>
</select>
<noscript><input type="submit" value="Submit"></noscript>
</form>
数据收集(非常基本但仅用于测试!!):
<?php
if(isset($_POST['system_status'])){
$system_id = $_POST['system_id'];
$status = $_POST['status'];
echo $system_id;
echo $status;
}else{
}
?>
【问题讨论】:
-
您的选择没有
name。 -
我加了名字改成
post还是什么都没有 -
你检查
if(isset($_POST['system_status'])){,但我看不出它会在哪里设置。命名不会产生这种效果的表单。 -
当我删除“onChange”并使用提交按钮时,表单处理正确。
-
如果提交按钮被命名为“system_status”,这就是它起作用的原因。如果按钮不再存在,您应该能够删除该 isset 检查。
标签: php forms mysqli submit onchange