我目前在PHP echo中设置了一个表单。传统上,我的表单有一个提交按钮,用于将数据发送到单独的PHP文档中以添加或更改我的数据库,但是这次,我在<select>
标记内添加了标记,并且我使用的是javascript自动提交表单当使用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语句无法运行。
答案 0 :(得分:0)
选项名称不会成为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>";
}