2015-10-22 4 views
1

У меня есть еще одна проблема с моим кодом.используя форму текстовое поле имя из динамической таблицы вне whileloop

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

Проблемы в том, что я не могу получить доступ к текстовым полям извне whileloop, чтобы сохранить содержимое, все, что я получаю, - это неопределенная ошибка индекса для каждого поля.

<form method="POST" enctype="text/html"> 


<?php 

require_once ('config.php'); 
$sql = " SELECT * FROM kassen ORDER BY name ASC "; 
$db_erg = mysql_query($sql); 



echo "<tr>"; 
echo "<td>"; 
echo '<table border="1" width="80%" align="center">'; 

echo "<tr> <th>Name</th><th>Stand</th><th>Verbrauch</th><th>Einzahlungen</th></tr>"; 

while ($zeile = mysql_fetch_assoc($db_erg)) 
{ 
echo '<tr>'; 
echo '<td>'. $zeile['name'] . '</td>'; 
echo '<td><center>'. $zeile['bier_stand'] . '€</td>'; 
echo '<td>'; 

/* in the text below, i set the name to verbrauch"'.$zeile['id'] and 
ergebnis"'.$zeile['id'] which should generate a new unique name for every 
single text*/ 

echo '<center><input type="text" name="verbrauch"'.$zeile['id'].' value="0" size="10" />'; 
echo '</td>'; 
echo '<td>'; 
echo '<center><input type="text" name="einzahlung"'.$zeile['id'].' value="0" size="10" />'; 
echo '</td>'; 
echo '</tr>'; 
} echo '</table>'; 


?> 
<center><input type="hidden" name="aktion" value="speichern" /> 
<center><input type="Submit" name="" value="speichern"/> 
</form> 

<?php 

if (isset ($_POST['aktion'])) 
{ 
if ($_POST['aktion'] == "speichern") 
{ 
require_once ('config.php'); 
$sql = " SELECT * FROM kassen ORDER BY name ASC "; 
$db_erg = mysql_query($sql); 

while ($zeile = mysql_fetch_assoc($db_erg)) 
    { 
    $standalt = $zeile["bier_stand"]; 

    /* now I try to put the value of the text to the DB, but all i get is 
    Undefined Index error */ 

    $verbrauch = $_POST['verbrauch'.$zeile['id']]; 
    $einzahlung = $_POST['einzahlung'.$zeile['id']]; 


    $stand  = $zeile["bier_stand"] - $verbrauch + $einzahlung; 
    $id   = $zeile["id"]; 

    $sql = "UPDATE kassen SET "; 
    $sql .= " bier_stand_alt = '$standalt', "; 
    $sql .= " bier_stand  = '$stand', "; 
    $sql .= " bier_verbrauch = '$verbrauch', "; 
    $sql .= " bier_einzahlungen = '$einzahlung' "; 
    $sql .= " WHERE id='$id'"; 
    } 
echo '<h2>Änderungen übernommen</h2>'; 
echo '<a href="bierkasse.php">zurück zur Bierkasse</a>'; 
exit; 
} 
} 

?> 

Любая идея, что я испортил?

+0

Не уверен, что вы спрашиваете, но я бы рекомендовал переместить код обработки формы на p файла. – Chris

+0

'if (isset ($ _ POST ['aktion']) && $ _POST ['aktion'] == 'speichern')' – Chris

ответ

0

К сожалению для допроса,

действительно глупая ошибка

echo '<center><input type="text" name="einzahlung"'.$zeile['id'].' value="0" size="10" />'; 

должен был

echo '<center><input type="text" name="einzahlung'.$zeile['id'].'" value="0" size="10" />'; 

так на самом деле просто "был в неправильном месте ... глупой вещи, что происходит в 3 часа ночи

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