- Home
- Categorie
- Coding e Sistemistica
- PHP
- Checkbox
-
Checkbox
Ciao a tutti
ho un problemino risolto solo a metà, vi spiego
nella tabella pippo ho un campo chiamato optional classificata come text , all'interno ci sono delle stringhe quali
testo1, testo2, testo3,testo4,testo5
devo verificare se questi campi sono presenti in un array ed estrapolarli facendoli apparire in checkbox ceccati
vi posto lo script
[php]
$query_estr=mysql_query("SELECT * From pippo")
or die("errore nella query;".mysql_error());
$ultimo=mysql_fetch_object($query_estr);
$a_optional=array('testo1', 'testo2', 'testo3', 'testo4', 'testo5', 'testo6', 'testo7');
for($i=0; $i<count($a_optional); $i++)
{
if($ultimo->optional = "$a_optional*")
{
print"
<input type='checkbox' name='optional$i' value='optional$i' checked='checked'/>$a_optional*";
}
else
{
print"Ciao";
}
}
[/php]Il problema è che me li estrae tutti e li metti nelle checkbox
ma questa istruzione è giusta?
[php]
if($ultimo->optional = "$a_optional*")
[/php]Grazie in anticipo da danny
-
Ciao danny1975,
gli apici puoi eliminarli da quell'istruzione non sono necessari, da quanto ho capito il campo della tabella è di tipo text, quindi hai i valori separati da virgola pertanto un controllo di questo tipo dovrebbe andare sempre in false, dovresti fare un explode per ottenere i valori in maniera separata e dopo puoi usare la funzione in_array.
-
Ciao, grazie per la risposta, ma in questa parte di codice non riesco ad uscirne
[php]
$query_estr=mysql_query("SELECT * From pippo")
or die("errore nella query;".mysql_error());
$ultimo=mysql_fetch_object($query_estr);$a_optional=array('testo1', 'testo2', 'testo3', 'testo4', 'testo5', 'testo6', 'testo7', 'testo8');
$pippo=explode(',', $a_optional);
print"
<table cellpadding='0' cellspacing='0' border='0' bordercolor='#23D527'>";
$riga=1;
for($f=0; $f<count($a_optional); $f++)
{
if($riga == 1)
{
print"<tr>";
}
print"
<td width='200' class='testo'>
<input type='checkbox' name='$f'>$a_optional
</td>";
$riga ++;
if($riga > 2)
{
print"</tr>";
$riga=1;
}
}
print"
</table>";
[/php]Ho provato anche con altri esempi e mi riesce, quando lo porto in questo script mi impappino(perdo)
Quando estraggo i dati presenti nella colona optional separati da una virgola, mi dovrebbero apparire nelle check ceccate, ma allo stesso tempo quei dati che fanno parte ugualmente dell'array e non presenti nella colonna optional dovrebbero apparirmi in check non ceccatiCiao e grazie da danny
-
[php]
print"
<table cellpadding='0' cellspacing='0' border='0' bordercolor='#23D527'>";
$riga=1;
for($f=0; $f<count($pippo); $f++)
{
if($ultimo->optional = $pippo)
{
if($riga == 1)
{
print"<tr>";
}
print"
<td width='200' class='testo'>
<input type='checkbox' name='$f' checked='checked'>$pippo
</td>";
$riga ++;
if($riga > 2)
{
print"</tr>";
$riga=1;
}
}
else
{
if($riga == 1)
{
print"<tr>";
}
print"
<td width='200' class='testo'>
<input type='checkbox' name='$f'>$pippo
</td>";
$riga ++;
if($riga > 2)
{
print"</tr>";
$riga=1;
}
}
}
print"
</table>";
[/php]Ho provato a fare cosi, ma non va, mi da una check ceccata con a fianco scritto array, e poi mi da un errore
Notice: Array to string conversion in D:2_prova.php on line 105la riga 105 è $pippo=explode(',', $a_optional);
Ciao di nuovo
-
Ciao a tutti qua è un macello, prove su prove, ma non riesco a far comparire quello che voglio.
Mi vorrei rispiegare
Il punto non è estrapolare dei dati separati da una virgola, quello facendo explode va bene, il problema è; dato un array composto da 10 elementi, quando faccio la insert è stato scelto di inserirne 3, qualcosa non è andato a buon fine, e devo ritornare alla pagina precedente contenente le 10 checkbox, ma di queste dieci 3 dovranno essere ceccate e 7 dovranno essere vuote, come faccio a fare una cosa del genere, forse non sara difficile, ma visto che sto da stamattina mi sto esaurendo
[PHP]
//Nella cella optional della tabella pippo ho testo1,testo2,testo3
$query_estr=mysql_query("SELECT * From pippo")
or die("errore nella query;".mysql_error());
$ultimo=mysql_fetch_object($query_estr);
$a_optional=array('testo1', 'testo2', 'testo3', 'testo4', 'testo5', 'testo6', 'testo7', 'testo8', 'testo9', 'testo10');
$riga=1;
print"
<table cellpadding='0' cellspacing='0' border='0'>";
for($f=0; $f<count($a_optional); $f++)
{
if($riga == 1)
{
print"<tr>";
}
print"
<td width='200' class='testo'>
<input type='checkbox' name='$f'>$a_optional
</td>";
$riga++;
if($riga > 2)
{
print"</tr>";
$riga=1;
}
}
print"
</table>";
[/PHP]
Ciao da danny
-
Ciao ragazzi, vi sarei grato se mi deste un aiuto
Grazie da danny
-
Ciao ragazzi non dimenticatevi di me
intanto sto ancora facendo prove, risultato zero
Ciao da danny
-
Ciao a tutti per adesso sono arrivato a fare l'explode
[php]
$query_estr=mysql_query("SELECT * From pippo")
or die("errore nella query;".mysql_error());
$ultimo=mysql_fetch_object($query_estr);
//print $ultimo->optional; qua dentro c'è testo1,testo2,testo3
$oper=explode(',',$ultimo->optional);
$a_optional=array('testo1', 'testo2', 'testo3', 'testo4', 'testo5', 'testo6', 'testo7', 'testo8');
$riga=1;
print"
<table cellpadding='0' cellspacing='0' border='0' bordercolor='#23D527'>";
for($f=0; $f<count($a_optional); $f++)
{
if($riga == 1)
{
print"<tr>";
}
print"
<td width='200' class='testo'>
<input type='checkbox' name='$f'>$a_optional
</td>";
$riga++;
if($riga > 2)
{
print"</tr>";
$riga=1;
}
}
print"
</table>";
[/php]Il problema è sempre lo stesso adesso dovrei far visualizzare le 10 check di cui 3 devono essere checcate
-
Ciao a tutti, ultima cosa fatta, ma da errore alla riga dove faccio il confronto
[PHP]
$query_estr=mysql_query("SELECT * From pippo")
or die("errore nella query;".mysql_error());
$ultimo=mysql_fetch_object($query_estr);
//print $ultimo->optional; qua dentro ho testo1,testo2,testo3
$oper=explode(',',$ultimo->optional);
for($i=0; $i<count($oper); $i++)
{
print $oper*; //qua dentro c'è testo1testo2testo3
}
$a_optional=array('testo1', 'testo2', 'testo3', 'testo4', 'testo5', 'testo6', 'testo7', 'testo8');
$check="";
$riga=1;
print"
<table cellpadding='0' cellspacing='0' border='0' bordercolor='#23D527'>";
for($f=0; $f<count($a_optional); $f++)
{
if($oper*==$a_optional)
{
$check="checked";
}
else
{
$check="";
}
if($riga == 1)
{
print"<tr>";
}
print"
<td width='200' class='testo'>
<input type='checkbox' name='$f' $check>$a_optional
</td>";
$riga++;
if($riga > 2)
{
print"</tr>";
$riga=1;
}
}
print"
</table>";
[/PHP]