说实话,我对PHP没有任何线索,但我可以看到它的强大功能,我只是想学习如何控制它。我有三页预订表格。页面一到两个正在工作,但是两到三个不起作用。这是第二页的PHP代码 -
<?php
// Total Number of Nights Between Picked Dates
$days = (strtotime($_POST["checkoutdate"]) - strtotime($_POST["checkindate"])) / 86400 - 1;
// Extra Nightly Cost
define ("extranights", 80);
$addnights = (int)extranights * ($days - 4);
// Deposit Price Calculation
define("deposit", 370);
$deposit = null;
if (isset($_POST["numberofpeople"])) {
$numberofpeople = intval($_POST["numberofpeople"]);
$deposit = ((int)deposit * $numberofpeople + $addnights) * 0.3;
}
// Total Price Calculation
define("totalprice", 370);
$result = null;
if (isset($_POST["numberofpeople"])) {
$numberofpeople = intval($_POST["numberofpeople"]);
$result = (int)totalprice * $numberofpeople + $addnights;
}
?>
然后我在同一页面上回复了存款和总价的价值
..... (确认预订)30%押金: € 总价: €
我一直在苦苦思索的是如何将存款和总价值的回音值发布到第三页。如果解决方案/答案很广泛,那么我将不得不回到绘图板并一点一点地重新开始。但这将完成表单的用户端。我不期待数据库的东西:(
答案 0 :(得分:0)
我建议你看一下php session:
你会在第2页做这样的事情:
<?php
session_start();
$deposit= $_SESSION['deposit'] = $depositVar;
$total = $_SESSION['total'] = $totalVar;
?>
然后在第3页上你可以调用这样的值:\
echo $deposit= $_SESSION['deposit'];
echo $total= $_SESSION['total']
答案 1 :(得分:0)
请考虑这种替代方法的优势。您的预订表格可以使用多个&#34;页面&#34;进行设置,只显示为用户的页面。
也就是说,对于用户来说,他/她将从一个屏幕进入下一个屏幕,但这将是由javascript(例如jQueryUI Tabs)创建的错觉。实际上,所有字段都在相同的页面/相同的形式中,就像在jsFiddle中一样。然后,当用户点击“提交”按钮时,您可以收集所有信息:
alert()
或jQueryUI对话框显示消息,(2)通过return false;
$('#IdOfForm').submit();
通过在客户端进行所有数据收集和验证,您可以大大简化PHP代码。 此外,如果用户被发送回完成错过的字段,他们到目前为止输入的所有数据仍然存在...
请注意,您仍必须验证PHP端的数据以防止SQL注入。 See this article和this SO Post了解详情。
独立,有效的代码示例:
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css" />
<style>
</style>
<script type="text/javascript">
$(document).ready(function() {
var arrFormFields = ['cn','ca','ce','cp','dd','rd'];
$("#tabs").tabs();
$("#theMsg").dialog({
autoOpen: false,
});
$('#doit').click(function() {
for (var fld in arrFormFields) {
if ( $('#' + arrFormFields[fld]).val() == ''){
console.log('Var ' +arrFormFields[fld]+ ' has value: ' + $('#'+arrFormFields[fld]).val() );
$('#' + arrFormFields[fld]).css({'border':'1px solid red','background':'yellow'})
$('#ui-id-1').trigger('click');
$('#' + arrFormFields[fld]).focus();
alert('Please complete all fields'); //For some reason the alert isn't displaying
return false;
}else{
//Submit form to "dothebooking.php", like this:
//$('#TripForm').submit();
$('#theMsg').html('<h2>Form was successfully submitted</h2>');
$('#theMsg').dialog({'title':'Notice'}).dialog('open');
}
}
});
$('input:text').blur(function() {
$("input:not(:button)").css({'border':'1px solid grey','background':'white'});
});
}); //END $(document).ready()
</script>
</head>
<body>
<div id="tabs">
<ul>
<li><a href="#tabs-1">Customer Details</a></li>
<li><a href="#tabs-2">Trip Details</a></li>
<li><a href="#tabs-3">Trip Options</a></li>
</ul>
<form id='TripForm' action="dothebooking.php" method="POST">
<div id="tabs-1">
Customer Name: <input type='text' id="cn"><br>
Customer Address: <input type='text' id="ca"><br>
Customer Email: <input type='text' id="ce"><br>
Customer Phone: <input type='text' id="cp"><br>
</div><!-- #tabs-1 -->
<div id="tabs-2">
Departure Date: <input type='text' id="dd"><br>
Return Date: <input type='text' id="rd"><br>
</div><!-- #tabs-2 -->
<div id="tabs-3">
Guided Tour option <input type='checkbox' id="gt"><br>
Presidential Suite <input type='checkbox' id="ps"><br>
Bed and Breakfast <input type='checkbox' id="bb"><br>
<input type='button' id="doit" value="Submit Trip"><br>
</div><!-- #tabs-3 -->
</form><!-- #TripForm -->
</div><!-- #tabs -->
<div id="theMsg"></div>
</body>
</html>
您可能也会对jQuery validation plugin感兴趣。
Check out these demos快速查看/看。