Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> przekazywanie checkbxow
szymono
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 9.02.2004

Ostrzeżenie: (0%)
-----


mam taki problem
na jednej stroie tworzy sie lista osob jest to robione petla i wyciagane z bazy danych sql
wyglada to tak
[php:1:9af2f9b989]<?php
$link_id=db_connect();
if(!$link_id) die(sql_error());
$query = "select * from student";
$result = mysql_query($query) or die ("invalid query: " . mysql_error());

echo " <form method="post" action="usunstudenta.php"";


while ($query_data = mysql_fetch_array($result)){
$imie=$query_data['stud_imie'];
$studid = $query_data['studid'];
echo "<tr><td width="2%"><input name="del[]" value="i" type="checkbox" ></td>";
"<input type="hidden">".$studid." ";
echo "<td width="12%">".$studid."</td>";
echo "<td width="10 %">".$query_data['stud_nazwisko']."</td>";
echo "<td width="10 %">".$query_data['nr_indeksu']."</td>";
echo "<td width="10 %">".$query_data['rok_studiow']."</td>";
echo "<td width="10 %">".$query_data['semestr']."</td>";
echo "<td width="5%"><a href="index.php?file=listastudentow.php&action=edytuj&studid=$studid "> wyswietl</a></td></tr>";
}

?>[/php:1:9af2f9b989]

i teraz na dole strony znajduje sie link ktory ma przekazac do tej samej strony tylko te pola przy ktorych zaznaczono checkboxa
link wyglada tak
Kod
<a href="index.php?file=listastudentow.php&action=del&studid=<? $del[studid] ?>">Usun zaznaczonych</a></td>

przy czym del to funkcja ktora ma wyswietlic ta tabelke z osobami przy ktorych zaznaczono checkboxy.
i wszystko sie dzieje na jednej stronie tej listastudentow
ale to nie chce dzialac? czy zle skonstruowalem linka (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) czy cos innego ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kossa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

Ostrzeżenie: (0%)
-----


ten pierwszy form jest na 100% niepotrzebny, w drugim jest tylko zrob np.: tak: action=index.php?file=listastudentow.php

i w skrypcie pobieraj wartosc submit - czy usun, czy edytuj

i wtedy wykonuj odpowiednia akcje

Kossa

ten pierwszy form jest na 100% niepotrzebny, w drugim jest tylko zrob np.: tak: action=index.php?file=listastudentow.php

i w skrypcie pobieraj wartosc submit - czy usun, czy edytuj

i wtedy wykonuj odpowiednia akcje

Kossa


-----------------------------------------------------------------

rozumiem ze ta funkcja to potwierdzenie usuwania bo jesli nie to naknociles (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

[quote="szymono"]
//-----------------------------------
to chyba tu nie potrzebne jest:
html_header();
$link_id=db_connect();

//-------------------------------------
for($i = 0; $i < count($multi_field); $i++)
{
if (isset ($multi_field[$i]))
{
$query = "select * from student where studid = $studid ";
$result = mysql_query($query) or die ("invalid query: " . mysql_error());

while ($query_data = mysql_fetch_array($result)){
$studid=$query_data['studid'];
$imie=$query_data['stud_imie'];
$nazwisko=$query_data['stud_nazwisko'];
$nr_indeksu=$query_data['nr_indeksu'];
echo "<tr><td width="2%"><input name="multi_field[]" type="checkbox" checked></td>";
echo "<td width="12%">".$studid."</td>";
echo "<td width="12%">".$imie."</td>";
echo "<td width="10 %">".$nazwisko."</td>";
echo "<td width="10 %">".$nr_indeksu."</td>";
}
}
}
echo "<input type="submit" value="usun"></form>";
}


?>[/php]

majac teraz zanazczone wszystkie pola i wyswietlone tylko te wczesniej zaznaczone powinienesz jeszcze raz zrobic taka petle for i usunac wybrane rekordy

namieszales z tymi formami

powalcz z tym!

Kossa

-----------------------------------------------------------------

[php:1:e56c5d184d]<?php
$res=mysql_query("select * from $table ");
echo "<form method="post" action="index.php?section=newsletter&action=delete">
<input TYPE="submit" value="usuń zaznaczonych">";
while($row = mysql_fetch_array($res))
{
$adres_id = $row["id"];
$e_mail = $row["adres"];
echo "<input type="checkbox" value='$adres_id' name="del[]">$e_mail<br>";
}
echo "</form>

if (action=="delete")
{
for ($x=0;$x<count($del);$x++)
{
$usun_id = $del[$x];
$Query = "DELETE FROM $table WHERE id=$usun_id";
$res = ExecSQL($Query);
}
}
?>[/php:1:e56c5d184d]

mysle ze jest wszystko jasne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
ExecSQL - to funkcja wykonujaca zapytanie SQL qale to wiesz jak zrobic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

kod dziala - szybko sobie newslettera przerobilem na jednym ze starych serwisow

najpierw wyciagasz z bazy studentow i jest jeden form
potem jesli akcja == delete to jest wykonywany kod usuwajacy
to wszystko (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

mozesz sie pobawic z submit dodajac mu name i akcje wykonywac w zaleznosci od name



powodzenia!
Kossa


----------------------------------------------------------------
@kossa:
NABIJANIU POSTOW MOWIMY STANOWCZO NIE ! (IMG:http://forum.php.pl/style_emoticons/default/angrysmiley.gif)

(Za lamanie regulaminu jest ban !)

Seth
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.10.2025 - 01:00