checkbox
Moderatori: Moderatori, Start Moderator
checkbox
Salut
Vreau sa preiau mai multe valori dintr-un camp,si sa le adaug un checkbox,dupa care sa trimit datele cu POST,si sa le preiau.Ar fi ceva de genul :
$query3="SELECT * FROM monede WHERE activa='true'";
$result3=mysql_query($query3) or die ("Unable to do query 3");
while($row3=mysql_fetch_array($result3))
{
print "<tr><td>$row3[simbol]<input type=checkbox name=checkbox value=true>";
}
Dar probabil am nevoie de ceva de genul checkbox$i,pentru a putea prelua toate campurile,si nu stiu cum trebuie sa fac.Va rog cod pentru ca deja ma dispera.
Vreau sa preiau mai multe valori dintr-un camp,si sa le adaug un checkbox,dupa care sa trimit datele cu POST,si sa le preiau.Ar fi ceva de genul :
$query3="SELECT * FROM monede WHERE activa='true'";
$result3=mysql_query($query3) or die ("Unable to do query 3");
while($row3=mysql_fetch_array($result3))
{
print "<tr><td>$row3[simbol]<input type=checkbox name=checkbox value=true>";
}
Dar probabil am nevoie de ceva de genul checkbox$i,pentru a putea prelua toate campurile,si nu stiu cum trebuie sa fac.Va rog cod pentru ca deja ma dispera.
- lostone
- Senior Member
- Mesaje: 233
- Membru din: Joi Feb 03, 2005 2:15 pm
- Localitate: behind a firewall
- Contact:
cum adica "toate datele odata", adica intr-o sg variabila, sau cum ?! ai incercat ce ti-am scris mai sus ?! loop-ul ala iti scrie TOATE inregistrarile din baza de date care indeplinesc conditia din query-ul tau. fii mai explicit cu ce vrei sa faci daca vrei si mura-n-gura...
Madness is a gift that has been given to me...
Eu vreau ceva de genul:
prima parte:
$query3="SELECT * FROM monede WHERE activa='true'";
$result3=mysql_query($query3) or die ("Unable to do query 3");
while($row3=mysql_fetch_array($result3))
{
$num_rows=mysql_num_rows($result3);
print "<tr><td>$row3[simbol]<input type=checkbox name='checkbox$i' value='true'>";
print "<input type=hidden name='simbol$i' value='".$row3['simbol']."'>";
print "<input type=hidden name='num_rows' value='$num_rows'>";
}
si le preiau cu:
$ii=$_POST["num_rows"];
for($i=1;$i<=$ii;$i++)
{
$simbol[$i]=$_POST["simbol$i"];
$checkbox[$i]=$_POST["checkbox$i"];
if($checkbox[$i]=='true')
{
$query8="INSERT INTO limbi(id_limba,simbol,activa,principala,descriere,$simbol[$i]) VALUES
('$id_limba','$simbol','$activa','$principala','$descriere','true')";
$result8=mysql_query($query8) or die ("Unable to do query 8");
}
dar nu imi merge.
prima parte:
$query3="SELECT * FROM monede WHERE activa='true'";
$result3=mysql_query($query3) or die ("Unable to do query 3");
while($row3=mysql_fetch_array($result3))
{
$num_rows=mysql_num_rows($result3);
print "<tr><td>$row3[simbol]<input type=checkbox name='checkbox$i' value='true'>";
print "<input type=hidden name='simbol$i' value='".$row3['simbol']."'>";
print "<input type=hidden name='num_rows' value='$num_rows'>";
}
si le preiau cu:
$ii=$_POST["num_rows"];
for($i=1;$i<=$ii;$i++)
{
$simbol[$i]=$_POST["simbol$i"];
$checkbox[$i]=$_POST["checkbox$i"];
if($checkbox[$i]=='true')
{
$query8="INSERT INTO limbi(id_limba,simbol,activa,principala,descriere,$simbol[$i]) VALUES
('$id_limba','$simbol','$activa','$principala','$descriere','true')";
$result8=mysql_query($query8) or die ("Unable to do query 8");
}
dar nu imi merge.
- lostone
- Senior Member
- Mesaje: 233
- Membru din: Joi Feb 03, 2005 2:15 pm
- Localitate: behind a firewall
- Contact:
pai nu ma mira ca nu merge...
daca nu vrei s-asculti. incearca totusi si asa, s-ar putea sa ai o surpriza:
[php]
print "<tr><td>$row3[simbol]<input type=checkbox name='checkbox[]' value='true'>";
[/php]
si le preiei cu
[php]
for($i=1;$i<=count($_POST['checkbox']);$i++) {
.....
[/php]
si modifici in concordanta pt scriptul tau, nu am timp kiar acum sa il fac, poate mai tarziu.
joaca-te asa, poate iese. sau mai cauta pe gugal, c-ai documentatie destula despre asta...
daca nu vrei s-asculti. incearca totusi si asa, s-ar putea sa ai o surpriza:
[php]
print "<tr><td>$row3[simbol]<input type=checkbox name='checkbox[]' value='true'>";
[/php]
si le preiei cu
[php]
for($i=1;$i<=count($_POST['checkbox']);$i++) {
.....
[/php]
si modifici in concordanta pt scriptul tau, nu am timp kiar acum sa il fac, poate mai tarziu.
joaca-te asa, poate iese. sau mai cauta pe gugal, c-ai documentatie destula despre asta...
Madness is a gift that has been given to me...
-
mihnea sim
- Average Member
- Mesaje: 149
- Membru din: Vin Aug 20, 2004 9:15 pm
- Localitate: Alexandria
- Contact:
O sa il intreb pe guru joe de ce nu iti merge ...
Da un paste cu eroarea. Ai rulat toate procedurile de debugging pe care ar tb sa le stie oricine cand pleaca la un drum lung? Stii tu, activarea tuturor erorilor si warningurilor din ini, presarare cod cu print mysql_error(), affected_rows() ca sa verifici sql-urile .. printari de variabile pe parcursul vietii lor, comentari ale codului in genul divide-et-impera ... sunt carti intregi despre asta, dar macar cele enumerate de mine tb incercate pt a da de "sursa erorii". Ca dup-aia ne vine mult mai usor!
Da un paste cu eroarea. Ai rulat toate procedurile de debugging pe care ar tb sa le stie oricine cand pleaca la un drum lung? Stii tu, activarea tuturor erorilor si warningurilor din ini, presarare cod cu print mysql_error(), affected_rows() ca sa verifici sql-urile .. printari de variabile pe parcursul vietii lor, comentari ale codului in genul divide-et-impera ... sunt carti intregi despre asta, dar macar cele enumerate de mine tb incercate pt a da de "sursa erorii". Ca dup-aia ne vine mult mai usor!
"o istorie aberanta si injusta copleseste fiinta si o arunca afara din lumea ei"
Revin cu scriptul:
$i=1;
$ii=$num_rows;
for($i=1;$i<=$ii;$i++){
$mon[$i]=$object[$i]['simbol']; //asta reprezinta campurile selectate
print "<input type='hidden' name='mon$i' value='$mon[$i]'>";
print "<input type=hidden name='ii' value='$ii'>";
print "<table><td>".$object[$i]['simbol']."</td>";
//checkbox
print "<td><input type=checkbox name=checkbox$i value='true'></td>";
}
si le preiau:
for($i=1;$i<=$ii;$i++)
{
$mon[$i]=$_POST["mon$i"];
$checkbox[$i]=$_POST["checkbox$i"];
if ($checkbox[$i]=="true")
{
$query8="INSERT INTO limbi(id_limba,simbol,activa,principala,descriere,$mon[$i]) VALUES('$id_limba','$simbol','$activa',
'$principala','$descriere','true')";
$result8=mysql_query($query8) or die ("Unable to do query 8");
}
else
{
$query9="INSERT INTO limbi(id_limba,simbol,activa,principala,descriere,$mon[$i]) VALUES('$id_limba','$simbol','$activa',
'$principala','$descriere','false')";
$result9=mysql_query($query9) or die ("Unable to do query 9");
}}}
Imi merge,merg si interogarile,dar nu cum ar trebui.Poate trebuie scris altcumva partea de preluare a checkbox-ului,pentru ca imi ia la preluare valoarea unui singur checkbox,si anume primul,si nu toate checkbox-urile.Cu alte cuvinte imi introduce valoarea unu singur chekbox in tabel,si nu valorile tuturor checkbox-urilor.
$i=1;
$ii=$num_rows;
for($i=1;$i<=$ii;$i++){
$mon[$i]=$object[$i]['simbol']; //asta reprezinta campurile selectate
print "<input type='hidden' name='mon$i' value='$mon[$i]'>";
print "<input type=hidden name='ii' value='$ii'>";
print "<table><td>".$object[$i]['simbol']."</td>";
//checkbox
print "<td><input type=checkbox name=checkbox$i value='true'></td>";
}
si le preiau:
for($i=1;$i<=$ii;$i++)
{
$mon[$i]=$_POST["mon$i"];
$checkbox[$i]=$_POST["checkbox$i"];
if ($checkbox[$i]=="true")
{
$query8="INSERT INTO limbi(id_limba,simbol,activa,principala,descriere,$mon[$i]) VALUES('$id_limba','$simbol','$activa',
'$principala','$descriere','true')";
$result8=mysql_query($query8) or die ("Unable to do query 8");
}
else
{
$query9="INSERT INTO limbi(id_limba,simbol,activa,principala,descriere,$mon[$i]) VALUES('$id_limba','$simbol','$activa',
'$principala','$descriere','false')";
$result9=mysql_query($query9) or die ("Unable to do query 9");
}}}
Imi merge,merg si interogarile,dar nu cum ar trebui.Poate trebuie scris altcumva partea de preluare a checkbox-ului,pentru ca imi ia la preluare valoarea unui singur checkbox,si anume primul,si nu toate checkbox-urile.Cu alte cuvinte imi introduce valoarea unu singur chekbox in tabel,si nu valorile tuturor checkbox-urilor.
-
mihnea sim
- Average Member
- Mesaje: 149
- Membru din: Vin Aug 20, 2004 9:15 pm
- Localitate: Alexandria
- Contact:
fa un print $i in forul ala si un print $_POST['checkbox'.$i]
Apoi scrie un print mysql_error() dupa fiecare mysql_query; si mai da pe forum o cautare cu cuvintele checkbox si implode... unde vei vedea o alta metoda de a scrie/preia date din checkbox; iata cineva care a mai pornit un topic precum tine:
http://www.phpromania.net/forum/viewtop ... 0446#10446
si intrebi acolo care e topicul ala.
Apoi scrie un print mysql_error() dupa fiecare mysql_query; si mai da pe forum o cautare cu cuvintele checkbox si implode... unde vei vedea o alta metoda de a scrie/preia date din checkbox; iata cineva care a mai pornit un topic precum tine:
http://www.phpromania.net/forum/viewtop ... 0446#10446
si intrebi acolo care e topicul ala.
"o istorie aberanta si injusta copleseste fiinta si o arunca afara din lumea ei"
-
mihnea sim
- Average Member
- Mesaje: 149
- Membru din: Vin Aug 20, 2004 9:15 pm
- Localitate: Alexandria
- Contact:
Eroare e fie din baza de date, fie din php. Depinde ce vrei sa faci,
1) Daca fieldul id_limba are rolul de simplu contor atunci el e declarat bine (unique key, autoincrement pp), dar e incorect sa ii bagi o valoare stabilita de tine, asa ca lasi valoare nula '' si stie el ce id sa puna
2) daca vrei sa introduci tu un anumit id in id_limba (pt corespondenta cu alt tabel pp) atunci e absolut eronat sa il declari unique si poate chiar si auto_increment. Vezi ca nu e tocmai asa simplu sa faci scripturi php cand nu ai bine pusa la punct partea sql!
1) Daca fieldul id_limba are rolul de simplu contor atunci el e declarat bine (unique key, autoincrement pp), dar e incorect sa ii bagi o valoare stabilita de tine, asa ca lasi valoare nula '' si stie el ce id sa puna
2) daca vrei sa introduci tu un anumit id in id_limba (pt corespondenta cu alt tabel pp) atunci e absolut eronat sa il declari unique si poate chiar si auto_increment. Vezi ca nu e tocmai asa simplu sa faci scripturi php cand nu ai bine pusa la punct partea sql!
"o istorie aberanta si injusta copleseste fiinta si o arunca afara din lumea ei"
Aha..asta ar insemna ca trebuie sa folosesc UPDATE in loc de INSERT?Mai imi apare o chestie ciudata,si anume dupa ce completez form-ul si ii dau submit,imi printeaza doar ce am pus eu acolo sa printeze pentru verificare,si nu introduce in baza de date nimic.Abia daca mai completez odata form-ul imi introduce.Deci ca sa pot introduce o noua inregistrare,ca asta face form-ul,trebuie sa apas de doua ori pe butonul submit,si nu o singura data.
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 29 vizitatori