在下面的代码中,我试图处理select选项或文本字段的值:
<script>
function check() {
var dropdown = document.getElementById("OpType");
var current_value = dropdown.options[dropdown.selectedIndex].value;
if (current_value == "OpNo") {
document.getElementById("operationno").style.display = "block";
document.getElementById("MainType").style.display = "none";
document.getElementById("MemName").style.display = "none";
document.getElementById("EmpName").style.display = "none";
<?php $TPE = '1'?>
}
else if (current_value == "OpTyp") {
document.getElementById("MainType").style.display = "block";
document.getElementById("MemName").style.display = "none";
document.getElementById("EmpName").style.display = "none";
document.getElementById("operationno").style.display = "none";
<?php $TPE = '2'?>
}
else if (current_value == "OpMem") {
document.getElementById("MemName").style.display = "block";
document.getElementById("operationno").style.display = "none";
document.getElementById("MainType").style.display = "none";
document.getElementById("EmpName").style.display = "none";
<?php $TPE = '3'?>
}
else if (current_value == "OpEmp"){
document.getElementById("MemName").style.display = "none";
document.getElementById("operationno").style.display = "none";
document.getElementById("MainType").style.display = "none";
document.getElementById("EmpName").style.display = "block";
<?php $TPE = '4'?>
}
else if (current_value == "blank") {
document.getElementById("MainType").style.display = "none";
document.getElementById("MemName").style.display = "none";
document.getElementById("EmpName").style.display = "none";
document.getElementById("operationno").style.display = "none";
<?php $TPE = '0'?>
}
}
</script>
<form name="f1" action="FollowOperations.php" method="post">
<select id="OpType" onChange="check();">
<option value="blank">Choose</option>
<option value="OpNo">Operation No</option>
<option value="OpTyp">Operation Type</option>
<option value="OpMem">Maintenance Member</option>
<option value="OpEmp">Employee</option>
</select><br>
<input class="tb10" type="text" id="operationno" size="4" style="text-align: center" style="display: none">
<select id="MainType" style="display: none">
<option value="blank">Choose</option>
<option value="printing">Printing</option>
<option value="maintenance">PC Maintenance</option>
<option value="internet">Internet Problem</option>
<option value="software">Software</option>
<option value="email">Email Problem</option>
<option value="usbcd">USB/CD Problem</option>
</select>
<select id="MemName" style="display: none">
<option value="blank">Choose</option>
<option value="john">John</option>
<option value="hen">Hen</option>
</select>
<select id="EmpName" style="display: none">
<option value="blank">Choose</option>
<option value="smith">Smith</option>
<option value="will">William</option>
<option value="Gor">George</option>
</select>
<input type="submit" value="Submit" class="button" />
</form>
<?php
if (isset($_POST['formsubmitted'])){
if ($TPE == '1'){
$operationno = $_POST['operationno'];
$query_retrieve_maintenance = "Select Type from Maintenance where ID = '$operationno'";
$result_retrieve_maintenance = mysqli_query($dbh, $query_retrieve_maintenance);
$maintenance_type = mysqli_fetch_row($result_retrieve_maintenance);
$maintenance_typet = $maintenance_type[0];
echo $maintenance_typet;
} else if ($TPE == '2'){
$MainType = $_POST['MainType'];
if ($MainType=='email'){echo 'Email is not ava';}
} else if ($TPE == '3'){
$MemName = $_POST['MemName'];
} else if ($TPE == '4'){
$EmpName = $_POST['EmpName'];
} else{
$msg = 'not available';
}
}
?>
正如您在代码中看到的,当用户选择操作号时,将显示一个文本字段,然后用户将输入操作号以显示此维护操作的类型。类似地,当用户选择操作类型时,将显示维护类型列表,以便用户选择他需要的操作类型,以此类推剩余的选择选项。
我面临的问题是处理用户选择或输入的内容(在通过操作号搜索的情况下)。正如您在代码中看到的那样,我使用了if (isset($_POST['formsubmitted'])){
但它没有用。任何建议的家伙。
答案 0 :(得分:1)
输入提交中缺少表单提交的名称:
<input type="submit" value="Submit" class="button" name="formsubmitted" />
这应该有用。
答案 1 :(得分:1)
让我们看看你的例子:
if (current_value == "OpNo") {
document.getElementById("operationno").style.display = "block";
document.getElementById("MainType").style.display = "none";
document.getElementById("MemName").style.display = "none";
document.getElementById("EmpName").style.display = "none";
<?php $TPE = '1'?>
}
将PHP代码粘贴到javascript中。但是<?php $TPE = '1'?>
以及所有其他类似的声明都将由PHP执行,而不是取决于javascript的条件。
您可以执行序列:
If something happened in PHP (on server) -> then execute some code of javascript (on client)
因为您将能够决定JS代码客户端应该执行什么。
但不能:
If something happened in Javascript(client) -> execute code of PHP(server)
除非您将xmlhttp请求发送到网页。
因此,在您的情况下,$TPE
始终为0
。
我的建议是: 1.将数据放入数组进行映射,然后可以改进它:
$data = array(
"OpNo" => 1,
"OpTye" => 2,
"OpMem" => 3,
"OpEmp" => 4,
"blank" => 5
);
然后在表单中使用您的选择,创建属性name
<select id="OpType" name="tpe" onChange="check();">
<option value="blank">Choose</option>
<option value="OpNo">Operation No</option>
<option value="OpTyp">Operation Type</option>
<option value="OpMem">Maintenance Member</option>
<option value="OpEmp">Employee</option>
</select><br>
最后,从$_POST
<?php
if (isset($_POST['tpe'])){
if ((int) $_POST['tpe'] === $data['OpNo']){
//Do your stuff.
?>
<script>
executeSomeJSFunctionsHere();
</script>
<?php
}
}
?>