在下面的代码中:我有一个选择选项下拉列表(Employed,UmEmployed)如果我选择Option Employed它显示一些输入字段(当前指定,当前CTC)如果我提交数据而不插入任何它显示验证:当前指定是需要。
如果我从下拉列表中选择了另一个失业的选项,它应该直接重定向到另一个页面,但不会成功。失效的那个人也在验证。
<html>
<head>
<style>
#employer
{
display:none;
}
.error
{
color:#F00;
}
</style>
<?php
$currentdes="";
$currentdesErr="";
if ($_SERVER['REQUEST_METHOD']== "POST") {
$valid = true;
if(empty($_POST["desig"]))
{
$currentdesErr="* Current Designation is Required";
$valid=false;
echo "<style>#employer{display:block;}</style>";
}
else
{
$currentdes=test_input($_POST["desig"]);
}
//if valid then redirect
if($valid){
include 'database.php';
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=success.php">';
exit;
}
}
function test_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
</head>
<body>
<form id="jsform" method="post" action="<?php htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<p>Chose Your Browser: <select name = "currentsta" required>
<option value = "">-- Select an Option --</option>
<option value = "1" <?php if(isset($_POST["currentsta"]) && $_POST["currentsta"] == "1") echo "selected"; ?>>Employed</option>
<option value = "2" <?php if(isset($_POST["currentsta"]) && $_POST["currentsta"] == "2") echo "selected"; ?>>UnEmployed</option>
</select>
</p>
<div id="employer">
Current Designation: <label><input type="text" name="desig" size="50" /></label>
<span class="error"><?php echo $currentdesErr?></span>
<br>
Current CTC: <label><input type="text" size="50" /></label><br>
</div>
<!--currentstatus starts here-->
<script type="text/javascript">
$('p select[name=currentsta]').change(function(e){
if ($('p select[name=currentsta]').val() == '1'){
$('#employer').show();
}else{
$('#employer').hide();
}
});
</script>
<!--currentstatus Ends here-->
<!--Submit Button-->
<input type="button" value = "Submit" onClick=" document.getElementById('jsform').submit();" />
</form>
</body>
</html>
答案 0 :(得分:1)
对于失业选项,设计输入字段将为空,因为它未被填充。因此,你应该考虑这两个条件。也不要在if块中包含database.php。取而代之的是success.php
<html>
<head>
<style>
#employer
{
display:none;
}
.error
{
color:#F00;
}
</style>
<?php
$currentdes="";
$currentdesErr="";
if ($_SERVER['REQUEST_METHOD']== "POST") {
$valid = true;
if(empty($_POST["desig"]) && $_POST["currentsta"]==1)
{
$currentdesErr="* Current Designation is Required";
$valid=false;
echo "<style>#employer{display:block;}</style>";
}
else
{
$currentdes=test_input($_POST["desig"]);
}
//if valid then redirect
if($valid){
//include 'database.php';
header('Location:success.php');
exit;
}
}
function test_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
</head>
<body>
<form id="jsform" method="post" action="<?php htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<p>Chose Your Browser: <select name = "currentsta" required>
<option value = "">-- Select an Option --</option>
<option value = "1" <?php if(isset($_POST["currentsta"]) && $_POST["currentsta"] == "1") echo "selected"; ?>>Employed</option>
<option value = "2" <?php if(isset($_POST["currentsta"]) && $_POST["currentsta"] == "2") echo "selected"; ?>>UnEmployed</option>
</select>
</p>
<div id="employer">
Current Designation: <label><input type="text" name="desig" size="50" /></label>
<span class="error"><?php echo $currentdesErr?></span>
<br>
Current CTC: <label><input type="text" size="50" /></label><br>
</div>
<!--currentstatus starts here-->
<script type="text/javascript">
$('p select[name=currentsta]').change(function(e){
if ($('p select[name=currentsta]').val() == '1'){
$('#employer').show();
}else{
$('#employer').hide();
}
});
</script>
<!--currentstatus Ends here-->
<!--Submit Button-->
<input type="button" value = "Submit" onClick=" document.getElementById('jsform').submit();" />
</form>
</body>
</html>
答案 1 :(得分:0)
如果选择了失业选项,您想重定向到另一个页面,然后使用JavaScript重定向它。
在页面末尾的脚本中,修改将是 -
$('p select[name=currentsta]').change(function(e){
if ($('p select[name=currentsta]').val() == '1'){
$('#employer').show();
}else{
//$('#employer').hide();
//This redirects to next page on selecting the option.
window.location.href= "success.php";
}
});