[ dexterkk @ 16.12.2007. 14:49 ] @
Skoro sam pocheo da uchim PHP i mySQL pa sam naleteo na problemchit! ;)

Pocheo sam vezbanje tako shto hotju da napravim imenik sa mogutjnoshtju upisivanja, pretrage, pregleda itd...

Uspeo dam da nabudzim da mi chita vrednosti sa checkbox-va ispred svakog rekorda koji izlista (Ime, prezime, Grda, telefon, ...) i na osnovu ID-a u bazi da isti obrishem ili azuriram. Sve to lepo radi kad imam jedno dugme koje poziva recimo obrishi.php. Hteo bih da imam par dugmeta (Obrishi, prikazi, unos,...) da svako radi svoju funkciju.

Primetio sam, shto mozda nije tachno, da za svako dugme imoram imati formu koja ima svoju akciju na neki php fajl i da se recimo vrednosti iz checkbox-va u formi1 ne vide ako je pritisnuto dugne iz forme2, tako da mi fajl za obradu ne vidi vrednosti iz forme1.

Pretpostavljam da posloji praktichan i elegantan nachin da se to reshi pa bih zamolio za podrshku! :)

Code:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="post" action="brisanje.php">

<?php
include('povezi.php');
$upit = "select * from imenik order by id asc";

$result = mysql_query($upit) 
or die ("Ne mogu da izvrsim upit! ".mysql_error());

echo "<table border='1'>";
echo "<tr>";
echo "<th></th<th>ID</th><th>Ime</th><th>Prezime</th><th>Datum rodjenja</th>
     <th>Grad</th><th>Mesto</th><th>Ulica</th><th>Broj</th><th>Telefon</th>
     <th>Mob. telefon</th>";
echo "</tr>";

while($row = mysql_fetch_array($result))
{



    echo "<tr>";
    echo "<td><input type=\"checkbox\" name=\"checkbox[]\" value=\"",$row['id'],"\"></td>";
    echo "<td>", $row['id'], "</td><td>", $row['ime'], "</td><td>",
         $row['prezime'], "</td><td>", $row['dat_rodj'], "</td><td>",
         $row['grad'], "</td><td>", $row['mesto'], "</td><td>",
         $row['ulica'], "</td><td>", $row['br'], "</td><td>",
         $row['tel'], "</td><td>", $row['mob_tel'],"</td>";
         
        echo "</tr>";
}

echo "</table>";

mysql_close($connection);

?>

 <p>
<input type="submit" name="Submit" value="Obrishi">   // <-- ovo dugme uradi posao za brisanje, ali kako dodati dugme za prikazi i ostala?
</p>


<p>&nbsp;</p>
</body>
</html>


Evo i brisanje.php
Code:

<?php

$checkbox = $HTTP_POST_VARS['checkbox'];

include('povezi.php');

$deo3 = implode(',', $checkbox);
$deo4 = "(".$deo3.")";

$upit = "delete from imenik where id in".$deo4;

$result = mysql_query($upit) 
or die ("Ne mogu da izvrsim upit! ".mysql_error());



?>




[Ovu poruku je menjao dexterkk dana 16.12.2007. u 16:10 GMT+1]
[ Mister_rap @ 16.12.2007. 17:49 ] @
Nisam analizirao tvoj kod ali to sto ti treba je prilicno jednostavno i moze se odraditi na vise nacina.

Imas recimo fajlove:

bisanje.php izmjene.php prikaz.php i svi oni hvataju id koji im se prosledjuje...

<a href="brisanje.php?id=12">Obrisi item br 12</a>
<a href="prikaz.php?id=12">Prikazi item br 12</a>
<a href="izmjene.php?id=12">Izmjene item br 12</a>...

Mozes imati jedan fajl (uradi.php) i u njemu funckije koje rade brisanje, izmjenu...
Taj fajl hvata id i action recimo:

<a href="uradi.php?id=12&action=brisanje">Obrisi item br 12</a>...

ako akcija==brisanje pozoves funkciju za brisanje i prosljedis joj id

I tako redom...

Ps.
Ja koristim ajax za ove stvari!
[ x kepa x @ 16.12.2007. 19:38 ] @
Mozesh da stavish vishe Submit dugmica i daj im razlichita imena:
Code:
<input type="submit" name="delete" value="Obrishi">
<input type="submit" name="edit" value="Azuriraj">

A onda u PHP-u proveravaj koji je kliknut sa:
Code:
if(isset($_POST['delete'])){
bla bla kod za brisanje
}
if(isset($_POST['edit'])){
kod za azuriranje
}
itd...
Neshto na tu foru...
[ dexterkk @ 16.12.2007. 20:19 ] @
Hm...

Vidish ovo sa dugmitjima i imenima mi nije palo na pamet! Probatju, deluje mi jasno.

Sho se tiche varijante sa linkokvima nije mi jasno kako pokupiti stanje checkbox-ova jer se forma ne "submit-je"!?

Sa dugmitjima bi trebalo da moze jer su u istoj formi pa cu lako prochitati vrednost koju daju (U mom sluchaju id).


Hvala puno!
[ Miroslav Ćurčić @ 17.12.2007. 08:04 ] @
Nikako više od jednog "submit" dugmeta na formi !!!

Kad uneseš neki tekst u polje "text" tipa i pritisneš enter, koji submit će se izvršiti ?

Kod IEa možda pozove prvi na koji naiđe (ne sećam se baš), ali u FFu to bude nasumično, svaki put se okine nasumični submit.

Ako ti treba više dugmadi onda ih sve postavi na tip "button", ukloni im ime (nepotrebno je),
dodaj jedno "hidden" polje imena "mojaakcija" i dodaj svakom dugmetu: onclick="document.mojaforma.mojaakcija='Brisanje';document.mojaforma.submit();"