首先,我是真誠的,我是一名學生,我被要求做一項對我來說似乎不可能的任務。我不喜歡提問,因為一般來說,我總是能夠通過搜索和學習來解決我的編碼問題,但這是我第一次擔任這個職位。
我需要創建一個包含用戶填寫的兩個輸入的表單的 php 檔案。單擊提交后,網站將在其頂部顯示兩個值。到這里我還沒有遇到問題,但問題是,下次用戶發送另一個提交時,不是清除最后 2 個值并顯示 2 個新值,現在需要顯示 4 個值。
我知道這可以通過 JSON、使用會話、Ajax、隱藏輸入或使用另一個檔案來完成(如果可以的話,我會決定使用最后一個檔案),但老師說我們必須這樣做html 檔案,而不使用前面列出的任何方法。他說這可以通過存盤資料的陣列來完成,但正如我將在我的示例中展示的那樣,當我這樣做時,用戶單擊提交時,陣列值將被擦除并從零開始創建。我知道最合乎邏輯的做法是問他,但我已經這樣做了 4 次,他真的拒絕幫助我,所以我真的不知道該怎么做,除了在這里問。我應該指出答案必須是服務器端,因為主題是“服務器端編程”。
感謝您的幫助和抱歉,因為我相信這最終會成為一個很容易回答的愚蠢問題。
為了簡單起見,我洗掉了與格式有關的所有內容。這是代碼:
<?php
if (isset($_POST['activity']) && isset($_POST['time'])){
$agenda = array();
$activity = $_POST['activity'];
$time = $_POST['time'];
$text = $activity." ".$time;
array_push($agenda, $text);
foreach ($agenda as $arrayData){
print implode('", "', $agenda);
}
}
?>
<html>
<head>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
<label for="Activity">Activity</label><br>
<input name= "activity" type="text"><br><br>
<label for="Time">Time</label><br>
<input name= "time" type="time"><br><br>
<input type="submit">
</form>
</body>
</html>
uj5u.com熱心網友回復:
老實說,你的問題不是很清楚,但我可能已經為你準備了一些東西。
<?php
$formaction = $_SERVER['PHP_SELF'];
if (isset($_POST['activity']) && isset($_POST['time'])){
$agenda = array();
//if the parameter was passed in the action url
if(isset($_GET['agenda'])) {
$agenda = explode(", ", $_GET['agenda']);
}
//set activity time
$text = $_POST['activity']." ".$_POST['time'];
//push into existing array the new values
array_push($agenda, $text);
//print everything
print implode(", ", $agenda);
//update the form action variable
$formaction = $_SERVER['PHP_SELF'] . "?agenda=" . implode(", ", $agenda);
}
?>
<html>
<head>
</head>
<body>
<form action="<?php echo $formaction; ?>" method="POST">
<label for="Activity">Activity</label><br>
<input name= "activity" type="text"><br><br>
<label for="Time">Time</label><br>
<input name= "time" type="time"><br><br>
<input type="submit">
</form>
</body>
</html>
概括
由于您無法將發布的值保存到 SESSION vars 或 HIDDEN 輸入中,因此下一個最好的做法是將發布的表單的先前結果附加到表單的操作 url 中。
當表單發布時,我們驗證查詢字串是否agenda存在,如果存在,我們將其分解為一個名為 的陣列$agenda。然后我們連接$_POST['activity']和$_POST['time']值并將其推送到$agenda array。然后我們列印array $agenda并更新$formaction變數以包含添加到陣列中的新值。
在 HTML 部分,我們然后將 設定<form action=""為<form action="<?php echo $formaction; ?>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/311239.html
