我遇到的问题是我的表单提交按钮,因为它在foreach循环中,最终提交foreach运行的每个项目。如果我把它放在循环的外面,提交没有正确的数字提交,它最终会提交foreach中的最后一个值。有人有解决方案吗?
<div data-role='collapsible' data-collapsed='true' data-icon='arrow-l'>
<h3><?=$ticket['ticket_no']?> - <?=$ticket['title']?></h3>
<div class="ui-body ui-body-a">
<ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="c">
<li data-role="list-divider"><h1></h1></li>
<li><h3>Description</h3><br><br><?=$ticket['description'] ?></li>
<input type=hidden name=ticket_number value=<?= $ticket['ticket_no']; ?>>
<form action="<?=$_SERVER['PHP_SELF']; ?>" method="post">
<fieldset>
<div data-role="fieldcontain">
<label for="status" class="select">Change Status:</label>
<select name="status" id="<?=$ticket['ticket_no']?>">
<option value="Open">Status</option>
<option value="Tracker">Tracker</option>
<option value="Abandon">Abandon</option>
<option value="Communicate">Communicate</option>
<option value="Closed">Closed</option>
</select>
</div>
<input type="submit" data-theme="a" name="submit" value="Submit"></input>
</fieldset>
</form>
</div><!-- /themed container -->
</div> <!-- End inner collapsible set -->
} ?&GT;
答案 0 :(得分:1)
在每种形式中,添加如下内容:
<input type=hidden name=ticket_number value=<?= $ticket['ticket_no']; ?>>
然后将你的if()移到循环外部,并检查$ _POST ['ticket_number']
if(isset($_POST['submit']) && isset($_POST['ticket_number'])) {
$tickNum = $_POST['ticket_number'];
updateTT($tickNum);
}
这是在尽可能少的改变的情况下完成的。请清理你的输入,以及所有好东西!
答案 1 :(得分:0)
从循环中移动<form>
标记以及应该适合您的按钮
答案 2 :(得分:0)
您目前正在覆盖字段的问题,因为它们具有相同的名称。
[]就是你所需要的!
<select name="status[]" id="<?=$ticket['ticket_no']?>">
<option value="Open">Status</option>
<option value="Tracker">Tracker</option>
<option value="Abandon">Abandon</option>
<option value="Communicate">Communicate</option>
<option value="Closed">Closed</option>
</select>
现在发帖后你将获得状态数组中的所有票证。当你收到状态循环时,它会得到每个值。
数组帖子的示例:http://www.pickndrive.info/questions.php
检查表单html例如