| Autor | Zpráva | ||
|---|---|---|---|
| danhill Profil |
#1 · Zasláno: 27. 9. 2016, 22:21:49
Chjooo ... myslím,že buď už bych měl jít spát a nebo to zase bude pekelný oříšek ... :)
Prosím o pomoc jak na to ... Pomocí foreach si na stránce vykreslím tabulku z dat v databázi: $select = $mysqli->query("SELECT * FROM `test`");
echo '<table>';
echo '<tr>';
echo '<th>ID</th>';
echo '<th>Old value</th>';
echo '<th>New value</th>';
echo '<th>Check</th>';
echo '</tr>';
foreach ($select AS $row) {
echo '<form name="action_defect" method="POST">';
echo '<tr>';
echo '<td>'.$row['ID'].'</td>';
echo '<td>'.$row['old_value'].'</td>';
echo '<td>'.$row['new_value'].'</td>';
echo '<td><input type="checkbox" name="check_id[]" value="'.$row['ID'].'" /></td>';
echo '<tr>';
echo '</form>';
}
echo'</table>';Až do teď v pohodě - tohle samozřejmě není problém ... ale nyní někde nad nebo pod tabulku potřebuji umístit dva submity Něco jako: echo '<input type="submit" name="delete" value="Delete selected" />'; echo '<input type="submit" name="repair" value="Repair selected" />'; a následně na základě stisku jedno z tlačítek provést akci ve smyslu: if (isset($_POST['delete'])) {
foreach ($_POST['check_id'] AS $check_id){
echo 'Vymažu id: '.$check_id.'<br>;
}
}
else if (isset($_POST['repair'])) {
foreach ($_POST['check_id'] AS $check_id){
echo 'Opravím id: '.$check_id.'<br>;
}
}Ale to mi nechodí, protože mám submit zcela mimo form, jenže já nemůžu přeci dát form z toho foreache,jinak bych nezískal potřebné array s id ... Tak jako vůbec nevím a nemůžu najít jak tohle se řeší ... Jde o to, že chci prostě vymazat nebo opravit pouze vybrané řádky a ne všechny. Jo, to mi připomíná,že další problém je, jak udělat něco jako select all třeba kliknutím na th Check... Už se s tím trápím asi 3 hodiny a už prostě nevím, takže děkuji za jakoukoli radu. |
||
| Alphard Profil |
#2 · Zasláno: 28. 9. 2016, 01:44:33
danhill:
„jenže já nemůžu přeci dát form z toho foreache“ Musíš, jinak nikdy neodešleš víc checkboxů (bez js). „jinak bych nezískal potřebné array s id“ Mělo by to být snadné, prohlížeč dá vybrané checkboxy za sebe, odešle něco jako check_id[]=2&check_id[]=3&check_id[]=5.
|
||
| CZechBoY Profil |
#3 · Zasláno: 28. 9. 2016, 12:19:58
echo '<table>';
echo '<tr>';
echo '<th>ID</th>';
echo '<th>Old value</th>';
echo '<th>New value</th>';
echo '<th>Check</th>';
echo '</tr>';
echo '<form name="action_defect" method="POST">';
foreach ($select AS $row) {
echo '<tr>';
echo '<td>'.$row['ID'].'</td>';
echo '<td>'.$row['old_value'].'</td>';
echo '<td>'.$row['new_value'].'</td>';
echo '<td><input type="checkbox" name="check_id[]" value="'.$row['ID'].'" /></td>';
echo '<tr>';
}
echo '<input type="submit" name="delete" value="Delete selected" />';
echo '<input type="submit" name="repair" value="Repair selected" />';
echo '</form>';
echo'</table>';btw v takhle vypisovat html je pěkně na ***, nedá se v tom vůbec vyznat. Mně osobně vyhovuje obrácený způsob (vypisovat html a kde je něco z php tak začít php <?php echo $abc; ?> jako to dělají šablonovací systémy) |
||
| danhill Profil |
#4 · Zasláno: 28. 9. 2016, 15:28:36
Supeeer - jak snadné - už to valíííí :)
Moc děkuji za pomoc. Varianta CZechBoYe mě včera fakt nenapadla a je to tak geniální a prosté :) Ještě jednou díky moc! A omlouvám se, jak html vypisuji ... Nějak jsem si na to zvykl a mě se to naopak zdá přehlednější ... Ale tak na funkci to myslím žádný vliv nemá ... Ono taky asi bude záležet na tom jaký má člověk editor a jaké má nastavené barvičky atd... samozřejmě chápu, že to asi úpně správné není... Ještě někdy, když se mi jako hodně nechce, nebo spěchám, tak si to zapíšu : echo ' <tr> <td>'.$row['ID'].'</td> <td>'.$row['old_value'].'</td> <td>'.$row['new_value'].'</td> <td><input type="checkbox" name="check_id[]" value="'.$row['ID'].'" /></td> <tr> '; :D |
||
|
Časová prodleva: 9 let
|
|||
0