簡體   English   中英

表單提交后的PHP更新會話值

[英]PHP Update session values after form submit

我有一個帶有文本框的表單,該表單需要日期值(date1)。 更新並提交date1后(發布到同一頁面),它會毫無問題地更新會話值,但不會更新date2-下文解釋。

當date1更新時,date2不會更新。 通過將date1加30天,Date2將獲得一個值。

總結: Date1-會話變量在提交表單后得到更新。 Date2-提交表單后,會話變量不會更新。 但是date1和date2都將在數據庫中更新。

我花了幾天的時間來尋找問題。 我想出了如何獲取date1來更新會話變量,但是date2卻無法解決。

注意:我回顯會話變量。 這就是我知道頁面上沒有更新的方式。 回聲不在下面的代碼中。

if(isset($_POST['submit'])){

$memberid = $_SESSION['memberid'];  
$date1 = $_POST['date1'];
$date2 = $_SESSION['date2'];    

if(empty($_POST['date1'])){
$errordate1[] = 'Select a Date';
$_SESSION['date1'];

} else {

echo $_SESSION['date1'] = $_POST['date1'];

}


if(empty($_POST['date2'])){

$_SESSION['date2'];

} else {

echo $_SESSION['date2'] = $_POST['date2'];

}



if(!isset($errordate1)){

$date1 = date('Y-m-d', strtotime($_POST['date1']));
$date2 = date('Y-m-d', strtotime($date1 . " +30 days"));
echo $date2; // I do not get the updated date.  
//die($date2); // if I uncomment this line I get the updated value for date2.


    try {

    $_SESSION['date2'] = $_POST['date2'];
    $stmt = $db->prepare('UPDATE theDates SET date1 = :date1, date2 = :date2, WHERE 
memberid=:memberid');
    $stmt->execute(array(':date1'=>$date1, ':date2'=>$date2, ':memberid'=>$memberid));

    header('Location: profile.php');
    exit;

     } catch(PDOException $e) {
        $errordate1[] = $e->getMessage();
     }

    }

    } 

HTML-我為date2添加了一個隱藏值進行測試。 以為我會嘗試一下,看看嘗試使某些東西起作用會發生什么。

<form method="post" action="prof.php">
<input name="date1" type="text" value="<?php if(isset($errordate1)){ echo $_POST['date1']; } ?>" />
<input name="date2" type="hidden" value="<?php echo $_SESSION['date2']; ?>" />
<input type="submit" name="submit" value="Submit">
</form>

終於找到了一種方法來使它起作用,而不是依靠一群孩子。 在更改我使用的代碼的整個過程中:

$_SESSION['date2'] = $_POST['date2'];

但這是錯誤的。 相反,它是:

$_POST['date2'] = $date2; 

編碼:

if(!isset($errordate1)){

    $date1 = date('Y-m-d', strtotime($_POST['date1']));
    $date2 = date('Y-m-d', strtotime($date1 . " +30 days"));

    if(isset($_POST['date2'])) { 
       $_POST['date2'] = $date2; 

       }

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM