• User Attivo

    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


  • ModSenior

    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.


  • User Attivo

    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 ceccati

    Ciao e grazie da danny


  • User Attivo

    [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 105

    la riga 105 è $pippo=explode(',', $a_optional);

    Ciao di nuovo


  • User Attivo

    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


  • User Attivo

    Ciao ragazzi, vi sarei grato se mi deste un aiuto

    Grazie da danny


  • User Attivo

    Ciao ragazzi non dimenticatevi di me
    intanto sto ancora facendo prove, risultato zero
    Ciao da danny


  • User Attivo

    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


  • User Attivo

    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]