Buongiorno a tutti ragazzi,
io ho un problema con delle checkbox. Ho creato un form con ricerca nel Database con vincolo testo, data, centro, e avrei messo anche due checkbox dove una ha valore 1 e l'altra 0 nella tabella del database.
Funziona tutto tranne il vincolo delle checkbox.
Vi posto il codice che è suddiviso in due pagine, una è la classe e l'altra invece dove c'è il form html.
class.php
Codice PHP:
<?php
class Newsletter
{
/* id Centro commerciale*/
public $id_cc = NULL;
/* connessione al database*/
public function __construct($db) {
$this->db = $db;
}
public static function elenco ($text = NULL, $date_da = NULL, $date_a = NULL, $stato = NULL, $centro_commerciale = NULL, $tot_pages = NULL, $per_page = 25)
{
$dati = array();
$query = "SELECT * FROM nl_newsletter WHERE (1=1)";
/*ricerca con vincolo testo*/
if (isset($text) && (trim($text)!=''))
{
$query.= " AND titolo LIKE '%".mysql_escape_string($text)."%'";
}
/*ricerca con vincolo centro commerciale*/
if (isset($centro_commerciale) && (is_numeric($centro_commerciale)))
{
$query.= " AND sito = ".$centro_commerciale."";
}
[B]/*ricerca con vincolo stato (prova)*/
if (isset($stato) && (is_array($stato)))
{
$query.= " AND stato_coda_invio = ".$stato."";
}[/B]
/*ricerca con vincolo data da*/
if (isset($date_da) && ($date_da)!='')
{
$date = "$date_da";
$ddmmyy = explode('/',$date);
$date_conv = $ddmmyy[2] . $ddmmyy[1] . $ddmmyy[0];
$query.= " AND CONVERT(VARCHAR(10), data_invio, 112) >= '".$date_conv."'";
}
/*ricerca con vincolo data a*/
if (isset($date_a)&& ($date_a)!='')
{
$date = "$date_a";
$ddmmyy = explode('/',$date);
$date_conv = $ddmmyy[2] . $ddmmyy[1] . $ddmmyy[0];
$query.= " AND CONVERT(VARCHAR(10), data_invio, 112) <= '".$date_conv."'";
}
if ($res = mssql_query($query))
{
while ($row = mssql_fetch_assoc($res))
{
$dati[] = $row;
}
}
return($dati);
}
}
?>
invece la parte di HTML dove è presente il form è questa:
Codice PHP:
<input type="checkbox" name="st[]" value="0" class="check" <?php if(in_array("0",$stato)) { ?> checked="checked" <?php } ?> /> Inviata
<input type="checkbox" name="st[]" value="1" class="check" <?php if(in_array("1",$stato)) { ?> checked="checked" <?php } ?> /> Da inviare
in ultimo la parte doe stampo i risultati intabellati nella pagina HTML.
Codice PHP:
<?php
$i_nl = 0;
while (($i_nl < 2000) && ($i_nl < sizeof($newsletter))) {
echo '<div class="internotab1">';
echo '<div class="internotab">';
echo($newsletter[$i_nl]['sito']);
echo '</div>';
echo '</div>';
echo '<div class="internotab1">';
echo '<div class="internotab">';
echo($newsletter[$i_nl]['titolo']);
echo '</div>';
echo '</div>';
echo '<div class="internotab1">';
echo '<div class="internotab">';
echo($newsletter[$i_nl]['stato_coda_invio']);
echo '</div>';
echo '</div>';
echo '<div class="internotab2 hidden">';
echo '<div class="internotab floatl">';
echo($newsletter[$i_nl]['data_invio']);
echo '</div>';
echo '<div style="float:left;width:40px;text-align:center;margin-left:60px;padding-top:10px;">';
echo '<a href ="#"><img src="img/ico/pencil.png" width="22" height="22" alt="modifica" title="Modifica"/></a>';
echo '</div>';
echo '<div style="float:left;width:40px;text-align:center;padding-top:10px;">';
echo '<a href ="#"><img src="img/ico/bell.png" width="22" height="22" alt="modifica o annulla pianificazione" title="Modifica o Annulla pianificazione" /></a>';
echo '</div>';
echo '<div style="float:left;width:40px;text-align:center;padding-top:10px;">';
echo '<a href ="#"> <img src="img/ico/cestin.png" width="19" height="22"alt="cancella" title="Cancella" /></a>';
echo '</div>';
echo '</div>'.'<br>';
$i_nl++;
}
?>
</div>