如何在php表单post中使用javascript onclick指定的输入值
我有一个带有两个按钮、两个日期选择器和一个隐藏输入的表单。如果单击单向按钮,返回日期选择器将隐藏,输入值将更改为单向。单击return(返回)按钮将恢复该过程,并且输入值将更改为return(返回)如何在php表单post中使用javascript onclick指定的输入值,javascript,php,jquery,Javascript,Php,Jquery,我有一个带有两个按钮、两个日期选择器和一个隐藏输入的表单。如果单击单向按钮,返回日期选择器将隐藏,输入值将更改为单向。单击return(返回)按钮将恢复该过程,并且输入值将更改为return(返回) <script> $(document).ready(function() { $("label[name='oneway']").on("click", function(){ sessionStorage.setItem("btnActive", "oneway
<script>
$(document).ready(function() {
$("label[name='oneway']").on("click", function(){
sessionStorage.setItem("btnActive", "oneway");
$(".returnpicker").hide();
$("label[name='return']").removeClass('active');
$(this).addClass('active');
document.getElementById('hiddeninput').value = "oneway";
});
$("label[name='return']").on("click", function(){
sessionStorage.setItem("btnActive", "return");
$(".returnpicker").show();
$("label[name='oneway']").removeClass('active');
$(this).addClass('active');
document.getElementById('hiddeninput').value = "return";
});
let sessionState = sessionStorage.getItem("btnActive");
if( sessionState == "oneway") {
$(".returnpicker").hide();
$("label[name='return']").removeClass('active');
$(this).addClass('active');
document.getElementById('hiddeninput').value = "oneway";
} else {
sessionStorage.setItem("btnActive", "return");
$(".returnpicker").show();
$("label[name='oneway']").removeClass('active');
$(this).addClass('active');
document.getElementById('hiddeninput').value = "return";
}
});
</script>
$(文档).ready(函数(){
$(“label[name='oneway'])。在(“单击”,函数()上){
sessionStorage.setItem(“btnActive”、“单向”);
$(“.returnpicker”).hide();
$(“label[name='return']);
$(this.addClass('active');
document.getElementById('hiddeninput').value=“单向”;
});
$(“label[name='return'])。在(“单击”,函数()上){
sessionStorage.setItem(“btnActive”、“return”);
$(“.returnpicker”).show();
$(“label[name='oneway'])。removeClass('active');
$(this.addClass('active');
document.getElementById('hiddeninput').value=“return”;
});
让sessionState=sessionStorage.getItem(“btnActive”);
if(sessionState==“单向”){
$(“.returnpicker”).hide();
$(“label[name='return']);
$(this.addClass('active');
document.getElementById('hiddeninput').value=“单向”;
}否则{
sessionStorage.setItem(“btnActive”、“return”);
$(“.returnpicker”).show();
$(“label[name='oneway'])。removeClass('active');
$(this.addClass('active');
document.getElementById('hiddeninput').value=“return”;
}
});
我的html看起来像这样
<form method="post" action="">
<input type="hidden" id="hiddeninput" name="hiddeninput">
<div class="form-row">
<div class="btn-group btn-group-toggle" data-toggle="buttons">
<label for="oneway" class="btn btn-default " name="oneway">One way</label>
<label for="return" class="btn btn-default " name="return">Return</label>
</div>
<div class="form-group col-lg-3 departure">
<label for="OnewayDatepicker">Departure Date</label>
<div class="input-group date">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
<input id="date_added" type="text" name="OnewayDatepicker"class="form-control" value="<?php echo isset($_POST['OnewayDatepicker']) ? $_POST['OnewayDatepicker'] : '' ?>">
</div>
<div class="mb-3">
<?php if (isset($OnewayDatepicker_err )) echo '<p class="text-danger"><small>' . $OnewayDatepicker_err . ' </small></p>'; ?>
</div>
</div>
<div class="form-group col-lg-3 arrival">
<label for="ReturnDatepicker">Arrival Date</label>
<div class="input-group date">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
<input id="date_modified" type="text" name="RetunDatepicker"class="form-control" value="<?php echo isset($_POST['RetunDatepicker']) ? $_POST['RetunDatepicker'] : '' ?>">
</div>
<div class="mb-3">
<?php if (isset($ReturnDatepicker_err )) echo '<p class="text-danger"><small>' . $ReturnDatepicker_err . ' </small></p>'; ?>
</div>
</div>
</div>
<div>
<button type="submit" name="confirm" class="btn btn-primary btn-lg " id="confirm">Confirm</button>
</div>
</form>
单程
返回
离港日
到达日期
证实
还有我的php
<?php
$OnewayDatepicker_err = "";
$RetunDatepicker_err = "";
$OnewayDatepicker = $_POST['OnewayDatepicker'];
$RetunDatepicker = $_POST['RetunDatepicker'];
$hiddeninput = $_POST['hiddeninput'];
if (isset($_POST["confirm"])) {
if (empty($OnewayDatepicker)) {
$OnewayDatepicker_err = " * Choose Departure Date";
} else {
$OnewayDatepicker_err = "";
}
if ((empty($RetunDatepicker)) && ($hiddeninput == "return")) {
$RetunDatepicker_err = " * Choose Return Date";
} else {
$RetunDatepicker_err = "";
}
}
?>
除了这部分代码“&&($hiddeninput=“return”)”之外,一切都正常
php似乎无法识别JS传递到隐藏输入中的值,或者我做错了什么?请注意,
=
==$hiddeninput=“return”
是一个赋值,而不是比较。我将此$hiddeninput=“return”更改为此$hiddeninput==“return”它仍然不会返回任何错误id该字段为空…并且它仍然不会返回任何错误id…-你什么也不退。您仅使用$RetunDatepicker\u err=“*选择返回日期”分配变量代码>。您需要根据需要使用echo
关键字,或者可能使用return
。此外,检查浏览器控制台,查看隐藏字段是否实际发送了您认为是的值。在设置值的JS周围有很多if语句。很有可能,它的价值不是你想象的那样。