| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
Gabi
Data înscrierii: 14/Feb/2004
Mesaje: 3
|
| Trimis: Sâm Feb 14, 2004 11:52 am Titlul subiectului: Problema :) |
|
|
Am o baza de date. Introduc datele printr-un formular si ele mi se afiseaza intr-un tabel. La tabel am adaugat o coloana cu checkbox-uri. Selectez ce randuri din tabela vreau sa sterg si apas pe un link ca sa le stearga. Problema este ca nu stiu cum anume sa fac sa se stearga inregistrarile bifate. Nu stiu cum sa leg numele checkbox-ului de id-ul din baza mea de date.
Baza de date are 3 campuri, dintre care unul e cheie.
Va multumesc |
|
| Sus |
|
dannn
Data înscrierii: 14/Feb/2004
Mesaje: 26
|
| Trimis: Sâm Feb 14, 2004 8:10 pm Titlul subiectului: |
|
|
In formul tau html, acolo unde definesti checkboxurile pune [] (se pot introduce si explicit, adica specificind un numar insa iti recomand varianta asta) dupa ele. Asta va face ca acele checkboxuri sa iti apara ca un array in pagina postata.
Ex:
Cod:
<input type="checkbox" name="nume[]" value="valoare1">
<input type="checkbox" name="nume[]" value="valoare2">
....
In pagina care proceseaza ca sa vezi daca primul checkbox a fost selectat, verifici valoarea variabilei $_POST["nume"][0], pentru al doilea verifici valoarea lui $_POST["nume"][1] etc. |
|
| Sus |
|
Gabi
Data înscrierii: 14/Feb/2004
Mesaje: 3
|
| Trimis: Dum Feb 15, 2004 4:17 pm Titlul subiectului: |
|
|
Nu stiu sa verific daca un element a fost selectat.
Am incercat ceva de genul ...si nu merge
$nume = $HTTP_POST_VARS['nume'];
if ($nume[])
{
$db = mysql_pconnect('localhost', 'ro', 'ro');
mysql_select_db('bdate');
$query = "delete from news_nws where id_n='$id_n'";
$result = mysql_query($query);
echo 'Deleted .<br />';
}
else
echo 'No ';
unde
echo "<td><input type=checkbox name=\"nume[]\" value=\"id_nws\" ></td>"; |
|
| Sus |
|
dannn
Data înscrierii: 14/Feb/2004
Mesaje: 26
|
| Trimis: Dum Feb 15, 2004 5:09 pm Titlul subiectului: |
|
|
In mod normal, codul pe care l-ai scris tu ar trebui sa iti dea o eroare de sintaxa la linia if ($nume[])
In PHP, sintaxa $nume[] este folosita pentru atribuirea unui element unui array, incrementind indexul array-ului. Este folosit strict pentru asignare si nu poate fi folosit la citire (de aceea iti va da eroare de sintaxa).
Ce trebuie sa faci tu este sa identifici indexul acelui array in pagina html (al citilea element este checkboxul respectiv - 1).
Ca sa iti fie mai usor specifica tu indexul array-ului si in pagina html si in pagina web:
$nume = $HTTP_POST_VARS['nume'];
if ($nume[3])
{
$db = mysql_pconnect('localhost', 'ro', 'ro');
mysql_select_db('bdate');
$query = "delete from news_nws where id_n='$id_n'";
$result = mysql_query($query);
echo 'Deleted .<br />';
}
else
echo 'No ';
unde
echo "<td><input type=checkbox name=\"nume[3]\" value=\"id_nws\" ></td>"; |
|
| Sus |
|
Gabi
Data înscrierii: 14/Feb/2004
Mesaje: 3
|
| Trimis: Dum Feb 15, 2004 6:09 pm Titlul subiectului: |
|
|
am inteles ce zici..
din baza de date vreau sa sterg anumite inregistrari. Eu introduc date in baza de date prin formular. Mi se afiseaza intr-un tabel. In tabel am adaugat eu checkbox-uri. Vreau sa selectez cate checkboxuri vreau eu si sa apas pe un buton ca sa le sterg. Nu pot sa specfic indexul in pagina mea ca nu stiu cate inregistrai am. Din cauza asta voiam sa verific care checkbox-uri au fost selectate si dc sunt selectate sa le sterg din baza.
echo "<tr bgcolor=$color><td>".stripslashes($row['id'])."</td>";
echo "<td>".htmlspecialchars(stripslashes($row['titlu']))."</td>";
echo "<td><input type=checkbox name=\"nume[]\" value=\"id\" ></td>";
echo "</tr>";
If(checkbox selectat)
{
sterge din baza intregistrarile care corespund checkboxului selectat
} |
|
| Sus |
|
dannn
Data înscrierii: 14/Feb/2004
Mesaje: 26
|
| Trimis: Dum Feb 15, 2004 11:41 pm Titlul subiectului: |
|
|
Cod:
while ($row=mysql_fetch_array($result))
{
echo "<tr bgcolor=$color><td>".stripslashes($row['id'])."</td>";
echo "<td>".htmlspecialchars(stripslashes($row['titlu']))."</td>";
echo "<td><input type=checkbox name=\"nume[".$row['id']."]\" value=\"".$row['id']."\" ></td>";
echo "</tr>";
}
In pagina care proceseaza:
//Parcurge valorile postate
foreach ($_POST as $key=>$value)
{
//Verifica daca checkboxul a fost selectat
if ($value)
{
//Daca da, sterge inregistrarea
$query="Delete from tabela where id='".$key."'";
$result=mysql_query($query) or die(mysql_error());
}
}
|
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |