2015-10-17 4 views
1

У меня есть форма, которая содержит foreach. Это мой код:Форма submit in foreach

<table style="direction: rtl;text-align: right;width: 1500px;font-family: tahoma;" align="center"> 
    <thead> 
    <tr> 
    <th style="width:5%; ">#</th> 
    <th style="width:20%;">Name</th> 
    <th>Date</th> 
    <th>Buyer Code</th> 
    <th>User Code</th> 
    <th>Check</th> 
    </tr> 
    </thead> 
    <tbody> 
    <?php 
    $i=1; 
    foreach($Items as $Item) 
    { 
    echo '<form method="post" action="/provider/provider/checkUserCodeValidation"> 
    <tr> 
     <td>'.$i.'</td> 
     <td>'.$Item->getUser()->getFullName().'</td> 
     <td>'.$Item->getCreationDate(true,'Date').'</td> 
     <td>'.$Item->getBuyerCode().'</td> 
     <td><input name="userCode" id="userCode" value=""/></td> 
     <td><input type="submit" name="Submit" id="submit_butt" value="Submit"/></td> 
    </tr> 
    </from>'; 

    $i++; 
    } 
    ?> 
    </tbody> 

</table> 

Выход будет таким:

enter image description here

Теперь то, что я хочу сделать это, когда пользователь вводит число в USERCODE и щелчки представить, он проверяет существование этого целого в базе данных. Я обрабатываю процесс в checkUserCodeValidation (действие формы). Проблема в том, что если какое-либо из полей заполнено, оно отправляет значение userCode как null. Но последний работает. Что я должен делать, чтобы представить каждый отдельно?

ВНИМАНИЕ !!: Я попытался с помощью одной кнопки, где все таблицы находятся в одной форме, но проблема заключалась в том, что он посылает массив, который будет болью в голове, потому что я должен взрывать его и прочее позже в моей функции. Поэтому, пожалуйста, помогите мне в этом, если у вас есть решение через Javascript, это также будет оценено.

Cheeeeers

+0

Я думаю, что если вы пытаетесь использовать ** javascript/jquery/ajax **, то вам не нужны несколько форм. –

+0

Покажите мне, как ... – Sean

+1

Прежде всего, необходимо сначала улучшить некоторые вещи, как вам нужно добавить идентификатор элемента в каждой строке, чтобы изменить кнопку отправки для привязки с помощью href. В ней содержится URL-адрес действия с идентификатором элемента. –

ответ

1

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

Другой способ - сделать каждую линию формой.

Ajax будет лучшим решением, но в этом случае тип ввода должен быть кнопкой вместо отправки. Затем вам нужно определить обработчик кликов, который делает вызов ajax. Вот JQuery документ для Ajax пост: http://api.jquery.com/jquery.post/ Вы можете сделать это в ванили JS тоже: http://vanilla-js.com

+0

Я предпочитаю второй способ, которым вы сказали! И я думаю, что я делаю это, так как каждый находится в форме! – Sean

1

Yout текстовое поле идентификатор такие же

так добавить любое динамическое значение для вашего текстового поля и имя

как

<input name="userCode[]" id="userCode<?php $i ?>" value=""/>