rafik73
30.08.2015, 21:18:29
Temat niby oklepany,ale nie znalazłem jednoznacznej odpowiedzi. Jest formularz:
$wyk_query = mysql_query("SELECT * FROM nazwy_wyklady ORDER BY nr ASC") or
die('Błąd zapytania'); $id_wykladu=$wyk_array['id_wykladu'] ;
$nr=$wyk_array['nr'] ;
echo '<form action="y.php" method="post"> ';
echo '<span style="padding-left:5px"><input type="text" style="text-align:left;font-size:14px;width:50px;height:29px;background-color : White ;
color : black;border-width:1px;border-style:ridge;border-color:rgb(208,208,208);" name="nr[]" value="'.$nr.'"></span>';
echo '<span style="padding-left:5px"><input type="text" style="text-align:left;font-size:14px;width:500px;height:29px;background-color : White ;
color : black;border-width:1px;border-style:ridge;border-color:rgb(208,208,208);" name="nazwa[]" value="'.$nazwa.'"></span>';
echo '<span style="padding-left:5px"><input type="checkbox" name="delete[]" value="'.$id_wykladu.'"> </span>';
}
echo '<p style="float:left;padding-left:350px;padding-bottom:20px"><button type="submit" class="button_metro" style="float:left;width:80;height:40px;background-color:White;color:Tomato"> ZMIEŃ</button></p>';
oraz plik, który odbiera i aktualizuje:
//$id_wykladu=$_POST['id_wykladu'];
$nr=$_POST['nr'];
$nazwa=$_POST['nazwa'];
$checkbox=$_POST['delete'];
//for($i=0;$i<count($checkbox);$i++){
//$del_id = $checkbox[$i];
foreach($checkbox as $id)
foreach($nazwa as $name)
//$name = $nazwa[$i];
//$numer = $nr[$i];
foreach($nr as $numer)
//echo $nr.'<br>';
/*
mysql_query("SET NAMES 'utf8'");
mysql_query("UPDATE `nazwy_wyklady` SET `nazwa`='$nazwa' WHERE `id_wykladu`='$del_id'")
or die('Błąd zapytania');
}
header( 'Location: z.php' ) ;
exit();
*/
// }
efekt jest taki, że po zaznaczeniu kilku rekordów przesyła poprawnie $id_wykladu, czyli zaznaczone wartości,
zaś $nazwa oraz $nr wyświetla całą zawartość tabeli. Jak przypisać zawartość $nazwa i $nr do $id_wykladu.
Pyton_000
31.08.2015, 06:05:28
Możesz jaśniej?
rafik73
31.08.2015, 06:42:00
Założenie jest takie,że w formularzu mają być wyświetlane dane z tabeli, przy kazdym rekordzie ma być checkbox. Jednym wspólnym przyciskiem submit formularz ma wysyłać zaznaczone checkbox'ami rekordy do pliku,w którym za pomocą update jest aktualizowana tabela. W podanym listingu formularz wysyła poprawnie $id_wykladu, czyli to co jest przyporzadkowane do checkbox,według zaznaczenia , zaś jeśli chodzi o komórki $nr oraz $nazwa to wysyła wszystkie rekordy z tabeli,bez przyporządkowana do checkbox
$id_wykładu. $nr. $nazwa. Checkbox
1. 12. aaa. V
2. 13. Bbb. -
3. 14. Ccc. V
4. 15. ddd. -
5. 16. eee. V
Po submit formularz wysyła:
$id_wykladu: 1,3,5
$nr: 12,13,14,15,16
$nazwa: aaa,Bbb,Ccc,ddd,eee
Pyton_000
31.08.2015, 06:49:40
?>
<form action="y.php" method="post">
<span style="padding-left:5px"><input type="text"
style="text-align:left;font-size:14px;width:50px;height:29px;background-color : White ;
color : black;border: 1px ridge rgb(208,208,208);" name="nr[<?=$id_wykladu?>]" value="<?=$nr?>"></span>
<span style="padding-left:5px"><input type="text"
style="text-align:left;font-size:14px;width:500px;height:29px;background-color : White ;
color : black;border: 1px ridge rgb(208,208,208);" name="nazwa[<?=$id_wykladu?>]" value="<?=$nazwa?>"></span>
<span style="padding-left:5px"><input type="checkbox" name="delete[<?=$id_wykladu?>]" value="<?=$id_wykladu?>"> </span>
<br>
<?php
rafik73
31.08.2015, 07:10:13
Dziękuję, Spróbuję po powrocie do domu.
Rozważałem jeszcze:
Input type="hidden" name="x" value="'.$id_wykładu.'"
A potem
Input type="text" name="nazwa[x]" value="'.$nazwa '"
Itd.
nospor
31.08.2015, 11:59:16
JA tylko dodam, ze o to:
echo '<form action="y.php" method="post"> ';
ma sie znajdowac przed WHILE a nie w srodku WHILE.... takie tam podstawy HTML.
rafik73
31.08.2015, 18:54:37
Coś dalej nie tak, wyświetla Array w polu $nr i $nazwa
a jak próbuje print_r() w pętli to wywala wszystkie rekordy a nie zaznaczone...
...pomysły?
nospor
31.08.2015, 19:49:16
A skad pomysl, ze nr i nazwa pojawią sie tylko zaznaczone? To są normalne inputy i one zawsze sie wysylają, To tylko checkboxy wysylają sie zaznaczone
rafik73
31.08.2015, 19:59:05
Taki efekt chciałbym uzyskać, wysyłanie wartości wszystkich pól zaznaczonych rekordów.
Usuwanie to pikuś bo potrzebne tylko id zapisane w tablicy checkboxa
Mam listę powiedzmy 100 wykładów i chcę edytować 20, pojedyńczo się zajeżdże, a tak zaznaczam checkboxy przy rekordach do edycji, edytuje, klikam submit i robi się masowo
nospor
31.08.2015, 20:01:21
Toz jesli zrobiles jak kazal Pyton, to sprawe masz zalatwioną.... sla ci sie checkboxy tylko zaznaczaone, czyli masz ich ID. Majac ich ID wybierasz z post tylko te nri nazwa, ktore mają to ID. No w czym problem?
rafik73
31.08.2015, 20:07:35
No tak,ale nr i nazwa i tak musze POSTować bo podlegają edycji, a jak je wyłuskać po odebraniu ?
nospor
31.08.2015, 20:10:16
Toc juz pisalem: jesli zrobiles jak napisal Pyton, to kazde z nich ma takie sam index, co wyslany checkbox. Majac indeksy masz dostep do wszystkiego
rafik73
31.08.2015, 20:19:51
Załatwione. Serdeczne dzięki.
$nr=$_POST['nr'];
$nazwa=$_POST['nazwa'];
$checkbox=$_POST['delete'];
foreach($checkbox as $id) {
}
Po prostu uparłem się, żeby powiazać wszystko w formularzu i wysłać wyselekcjonowane. Nie ten tor i kierunek....Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.