2015-10-15 2 views
0

У меня есть form, который содержит table. В table я использовал foreach для извлечения нескольких данных.Кнопка отправки не работает в форме, содержащей таблицу с foreach

Это мой код:

<from method="post" action="/provider/provider/checkUserCodeValidation"> 

<table style="direction: rtl;text-align: right;width: 1500px;font-family: tahoma;" align="center"> 
    <thead> 
    <tr> 
    <th style="width:5%; ">row</th> 
    <th style="width:20%;">Fullname</th> 
    <th style="width:30%">Title</th> 
    <th style="width: 5%">Number</th> 
    <th>Date</th> 
    <th>ProCode</th> 
    <th>UseCode</th> 

    </tr> 
    </thead> 
    <tbody> 
    <?php 
    $i=1; 
    foreach($Items as $Item) 
    { 
    echo '<tr> 
     <td>'.$i.'</td> 
     <td>'.$Item->getUser()->getFullName().'</td> 
     <td>'.$Item->getContractTitle().'</td> 
     <td>'.$Item->getCount().'</td> 
     <td>'.$Item->getCreationDate(true,'Date').'</td> 
     <td>'.$Item->getProviderCode().'</td> 
     <td><input name=userCode id=userCode></td> 

    </tr>'; 
    $i++; 
    } 
    ?> 
    </tbody> 
    <input type="submit" name="Submit" id="submit_butt" value="Submit"/> 
</table> 


</from> 

Значение в каждой строке является статическим, за исключением UseCode, который является входным тегом. Пользователь вводит номер и нажимая кнопку submit, форма должна публиковать данные, но это не так. Хотелось бы знать, почему? Мне даже разрешено делать это, имея занавес в таблице? Если нет, что еще я должен сделать, чтобы достичь этого?

Решение в любом случае помогает! JQuery, Ajax, все.

+1

Опубликовать свою JS/Jquery part тоже –

+1

Где находится тег 'form'? –

+0

@ noobie-php Я не использую JS, это просто html и php вещь – Sean

ответ

4

Необходимо указать собственное имя элемента входа.

Изменить

<td><input name=userCode id=userCode></td> 

To:

<td><input name="userCode[]" id="userCode" value=""/></td> 

Пожалуйста, обратите внимание квадратные скобки [] вокруг атрибута name.

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

В бэкэнде PHP, просто использовать,

echo '<pre>'; 
print_r($_POST['userCode']); 
echo '</pre>'; 

И вы получите все отправленные значения в пределах цикла.

EDIT:

<form> тег неверен.

Изменение:

<from 

Для

<form 

Кроме того, закрывающий тег.

+0

Он не работает! Кроме того, я не получаю атрибут value! что делает делать? – Sean

+0

@Sean, он должен работать. Когда вы публикуете форму. Нет модного кода, все просто. '$ idField' предназначен только для демонстрационной цели, вы можете использовать свою собственную переменную. – Pupil

+0

Я ценю ваши усилия, но, как вы знаете, пользователь должен ввести это значение. В вашем коде Будет напечатано в полях ввода и все равно ничего не произойдет! – Sean

Смежные вопросы