以下是我的HTML页面之一。
<form id="regForm" method="post" action="enquiry_process.php" novalidate="novalidate">
<fieldset>
<legend>Personal Details</legend>
<label>First Name:</label>
<input type="text" name="owner" id="owner" /><br />
<label>Last Name:</label>
<input type="text" name="owner2" id="owner2" /><br />
</fieldset>
<p>
<input type="Submit" onclick="validateForm()"/>
<input type="Reset" value="Reset" />
</p>
</form>
以下是我的第二个HTML页面。
<form id="bookForm" method="post" action="view_enquiry.php">
<?php
$fname = $_POST['owner'];
$lname = $_POST['owner2'];
?>
<input type="hidden" name="owner" value="<?php echo $fname; ?>">
<input type="hidden" name="owner2" value="<?php echo $lname; ?>">
<fieldset>
<legend>User Details</legend>
<p>Your First Name: <span id="confirm_fname"></span></p>
<p>Your Last Name: <span id="confirm_lname"></span></p>
<input type="submit" name="submit" value="Confirm Booking" />
<input type="button" value="Cancel" id="cancelButton" onclick="cancelBooking()" />
</fieldset>
您看到的函数validateForm()
和cancelBooking()
是Javascript函数,用于验证我的表单或将用户从第2页返回到第1页,我相信它们与我的问题无关。< / p>
当我点击第一个HTML网页上的提交时,它应该将owner
和owner2
的值传递给第二页吗?
我继续获取未定义的索引,在浏览后,似乎我必须在我的PHP中使用isset()
或empty()
,但这似乎只是掩盖了我的注意事项,但实际上并没有修复它?当我添加isset()
时,它最终会显示第3页未定义变量。我的表单上的method
已经post
。
这里还有其他问题吗?谢谢。
编辑:以下是我的相关Javascripts。
ValidateForm:
function validateForm(){
"use strict";
gErrorMsg = "";
var nameOK = chkOwnerName();
var nameOK2 = chkOwnerName2();
var isAllOK = (nameOK && nameOK2);
if(isAllOK){
isAllOK = storeBooking();
}
else{
alert(gErrorMsg);
gErrorMsg = "";
}
return isAllOK;
}
Storebooking:
function storeBooking() {
"use strict";
sessionStorage.firstname = document.getElementById("owner").value;
sessionStorage.lastname = document.getElementById("owner2").value;
window.location = "enquiry_process.php";
}
我有另一个名为getbooking
的函数,它以条件window.onload
function getBooking(){
//if sessionStorage for username is not empty
if((sessionStorage.firstname != undefined)){
//confirmation text
document.getElementById("confirm_fname").textContent = sessionStorage.firstname;
document.getElementById("confirm_lname").textContent = sessionStorage.lastname;
}
chkOwnerName
和chkOwnerName2
是用模式验证表单的功能,我不认为它们是相关的。
我还使用Javascript相关内容更新了我的第二个HTML页面,因为我认为它最初并不相关。
答案 0 :(得分:0)
“if(empty($ var))”和“if(isset($ var))”是条件,如果测试返回true,它们检查某些内容并在“{}”内执行代码。所以他们没有“解决”问题。
没有你的js,你的脚本对我来说很好。也许是问题。
只需逐步尝试您的代码。你会发现什么是错的。