кнопка отправки php foreach - PullRequest
       8

кнопка отправки php foreach

2 голосов
/ 05 октября 2011

Проблема, с которой я столкнулся, заключается в том, что кнопка отправки формы, поскольку она находится в цикле 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 -->

} ?>

Ответы [ 3 ]

1 голос
/ 05 октября 2011

В каждой форме введите что-то вроде:

<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);                            
} 

Это было сделано с наименьшим количеством возможных изменений.Пожалуйста, дезинфицируйте свой вклад и все такое хорошее!

0 голосов
/ 05 октября 2011

проблема, которую вы в настоящее время перезаписываете свои поля, так как они имеют одинаковые имена.

[] - это то, что вам нужно!

<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>

теперь после публикации вы получите все билеты в массиве статуса. когда вы получаете статус зациклиться, чтобы получить каждое значение.

пример массива post: http://www.pickndrive.info/questions.php

проверьте HTML-форму, например

0 голосов
/ 05 октября 2011

переместите теги <form> из цикла, а также кнопку, которая должна работать для вас

...