将数据传递到不同的HTML5页面时的未定义索引

时间:2017-11-26 11:25:20

标签: php html5 forms post

以下是我的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网页上的提交时,它应该将ownerowner2的值传递给第二页吗?

我继续获取未定义的索引,在浏览后,似乎我必须在我的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;

}

chkOwnerNamechkOwnerName2是用模式验证表单的功能,我不认为它们是相关的。

我还使用Javascript相关内容更新了我的第二个HTML页面,因为我认为它最初并不相关。

1 个答案:

答案 0 :(得分:0)

“if(empty($ var))”和“if(isset($ var))”是条件,如果测试返回true,它们检查某些内容并在“{}”内执行代码。所以他们没有“解决”问题。

没有你的js,你的脚本对我来说很好。也许是问题。

只需逐步尝试您的代码。你会发现什么是错的。