2015-03-31 2 views
0

Так что я смотрел на некоторые другие сообщения на этом сайте и натолкнулся на код ниже (EDIT моего кода), который отлично работает, когда я отправляю код получателя: Примечание: Неопределенный индекс: id в /customers/0/2/e/richardbrown.name/httpd.www/debt/payment_process.php в строке 17 для каждого результата.Forms & Posting - Несколько данных

<form method="post" action="payment_process.php"> 
<table border="0">'; 
$stmt = $db->query("SELECT * FROM debt_accounts LEFT JOIN debt_companies ON accounts_company=companies_id WHERE accounts_amount > 0 ORDER BY accounts_company ASC"); 

while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ 
echo'<tr> 
<td width="200" align="left"><input type="text" name="payment[][id]" value="'.$row['accounts_id'].'" /></td> 
<td width="100" align="right"><input type="text" name="payment[][amount]" value="25.00" /></td> 
</tr>';     

} 

echo'</table><br /> <br /><input type="submit" /></form> 


if (isset($_POST['payment'])) 
{ 
    echo '<table>'; 
    foreach ($_POST['payment'] as $diam) 
    { 
     echo '<tr>'; 
     echo ' <td>', $diam['id'], '</td>'; 
     echo ' <td>', $diam['amount'], '</td>'; 
     echo '</tr>'; 
    } 
    echo '</table>'; 
} 
+0

Process скрипт делать? –

+0

все поля имени должны быть уникальными или в массиве, поэтому поле имени должно быть payment_id [] и т. Д. Затем это можно обработать, когда оно будет отправлено. – Adsy2010

+0

взгляните на [link] (http: // www. richardbrown.name/debt/payment.php), который является списком из базы данных, поэтому, как только я нажму кнопку «Отправить», я хочу обработать 11 результатов, чтобы иметь возможность вводить данные ... Я использовал foreach ob paymen_id, но, похоже, не работает? – Richard

ответ

0

ваше решение: имя = "payment_id []" в виде

и на стороне сервера (payment_process.php) используется цикл Еогеасп с $ _POST [ 'payment_id'] [ ].

+0

ok, поэтому я добавил payment_id [], но теперь при обработке вы получаете список, но $ _POST ['payment_amount'] в настоящее время составляет 11 на странице формы, когда я хочу, чтобы он основывался на том, что я ввел? – Richard

+1

просто потому, что вы должны сделать то же самое с именем = "payment_amount []" в своей форме. Каждый из них должен быть массивом в вашей форме. Затем вы можете использовать «foreach» ($ _ POST ['payment_amount'] как значение $) в вашем платежном_процессе.php – DDA

2

Изменить эту строку из вашего элемента формы:

name="payment_amount" 

быть массивом:

name="payment_amount[]" 

Затем измените ваш foreach читать как:

foreach ($_POST['payment_amount'] as $value) { 
    echo $value . "<br>"; 
} 
  • You использовали неправильный массив POST =>name="payment_id[]"

Чтобы добавить их все, если вы хотите сделать это, используйте:

foreach ($_POST['payment_amount'] as $value) { 

    echo $value . "<br>"; 

    $total += $value; 

} 

    echo $total; 

или

$total = array_sum($_POST['payment_amount']); 
Смежные вопросы