簡體   English   中英

無法將表單數據發送到PHP頁面

[英]Trouble sending form data to PHP page

我目前在PHP echo中設置了一個表單。 傳統上我的表單有一個提交按鈕,用於將數據發送到單獨的PHP文檔以添加或更改我的數據庫,但這次我在<select>標簽內部有標簽,而我正在使用javascript自動提交表單使用onchange="this.form.submit()".選擇選項標簽onchange="this.form.submit()". 在我的PHP文檔中,我使用if (isset($_POST['completeStatus']) {PHP CODE};來查看是否在表單中選擇了其中一個選項,但由於某種原因它不適用於我。似乎isset函數只知道點擊按鈕的時間,而不是選項標簽。如果我錯了,請糾正我。我不確定是否有不同的解決方案使這項工作正常,或者是否有什么東西在我的代碼中我沒有看到錯誤。

while ($row = mysqli_fetch_assoc($result)) {
        echo "<center><div class='taskWrapper'><div class='taskTitles'><p class='subjectTitle'>subject</p><p class='taskSubject'>" . $row['subject'] ."</p></div>". " " .
                     "<div class='taskTitles'><p class='messageTitle'>Message</p><p class='taskMessage'>". $row['message'] ."</p></div>". " " .
                     "<div class='taskTitles'><form action='includes/changestatus.inc.php' method='POST'>
                       <p class='statusTitle'>Status</p><select class='taskStatus' name='myselect' onchange='this.form.submit()'>
                                                             <option value=". $row['calenderid'] .">".$row['mystatus']."</option>
                                                             <option name='stuckStatus' value=". $row['calenderid'] .">Two</option>
                                                             <option name='progressStatus' value=". $row['calenderid'] .">Three</option>
                                                             <option name='completeStatus' value=". $row['calenderid'] .">Four</option>
                                                             <input name='statusDate' type='hidden' value=". $urlDate ."></input>
                                                             <input name='statusMonth' type='hidden' value=". $urlMonth ."></input>
                                                             <input name='statusTZ' type='hidden' value=". $urlTZ ."></input>
                                                         </select>
                     </form></div></center>" ." ";
}

這是表單提交的PHP文檔

require 'dbh.inc.php';


    if (isset($_POST['completeStatus'])) {echo "working";}

出於測試目的,當我在表單上單擊選項4並回顯“正在工作”時,我希望它能夠導航並保留在PHP頁面上,但是代碼塊沒有運行。 它被發送到正確的PHP文檔,但if語句將不會運行。

選項名稱不會成為POST參數。 您應該使用<select>$_POST['myselect']

然后,您需要為所有選項提供不同的值,以便您可以確定選擇了哪個選項。 $_POST['myselect']的值將是其中一個值。

我不確定第一個<option>是什么。 我懷疑你真正想做的是默認選擇當前值,我已經添加了代碼($row['mystatus'] == 'stuckStatus' ? 'selected' : '')

我添加了另一個帶有任務ID的隱藏輸入。 $_POST['calendarId']將包含$row['calendarid']作為用戶提交的表單。

while ($row = mysqli_fetch_assoc($result)) {
    echo "<center><div class='taskWrapper'><div class='taskTitles'><p class='subjectTitle'>subject</p><p class='taskSubject'>" . $row['subject'] ."</p></div>". " " .
                 "<div class='taskTitles'><p class='messageTitle'>Message</p><p class='taskMessage'>". $row['message'] ."</p></div>". " " .
                 "<div class='taskTitles'><form action='includes/changestatus.inc.php' method='POST'>
                   <p class='statusTitle'>Status</p><select class='taskStatus' name='myselect' onchange='this.form.submit()'>
                                                         <option value='stuckStatus' " . ($row['mystatus'] == 'stuckStatus' ? 'selected' : '') . ">Two</option>
                                                         <option value='progressStatus' " . ($row['mystatus'] == 'progressStatus' ? 'selected' : '') . ">Three</option>
                                                         <option value='completeStatus' " . ($row['mystatus'] == 'completeStatus' ? 'selected' : '') . ">Four</option>
                                                     </select>
                   <input name="calendarId' type='hidden' value='" . $row['calenderid'] . "'>
                   <input name='statusDate' type='hidden' value=". $urlDate ."></input>
                   <input name='statusMonth' type='hidden' value=". $urlMonth ."></input>
                   <input name='statusTZ' type='hidden' value=". $urlTZ ."></input>
                 </form></div></center>";
}

暫無
暫無

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

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