li ho cancellati perchè dopo che mi avevi detto quella cosa pensavo non potevate aiutarmi in questo modo,certo che li riposto,ho molta gratitudine verso di voi che state utilizzando il vostro tempo per aiutarmi,vi ringrazio veramente un sacco! il codice che ho postato è quello che utilizzo,altrimenti come farei a farmi aiutare...
ecco la pagina index col form:
quando si clicca sulla scelta del genere(default o personalizzato) si innesca la funzione setGenere()codice:<form name="MyForm" > <tr> <td colspan="2"> <span style="background-color:#BBB">Categoria ></span> Film, SerieTV, SerieAnimate <input type="hidden" id="hiddenCategory" name="hiddenCategory" /> <span style="background-color:#BBB;">Genere</span> <button type="button" id="bDefault" name="bDefault" onclick="setGenere(1);" disabled="disabled">Default</button> <button type="button" id="bPersonalizzato" name="bPersonalizzato" onclick="setGenere(2);" disabled="disabled">Personalizzato</button> <input type="hidden" id="hiddenGenere" name="hiddenGenere" /> <div id="selDiv"> <select name="selGenere" id="selGenere" disabled="disabled"> <option value=""> -- </option> </select> </div> <input type="hidden" id="hiddenPersonalGenere" name="hiddenPersonalGenere"/> </td> </tr>
farà una chiamata asincrona php per ricavarsi la select dal database e me la riscrive nel div con la funzione JS setGenereResponsecodice:function setGenere(GenereNumber) { //creo una variabile globale per poterla utilizzare anche in altre funzioni genereNumberCopy=GenereNumber; document.getElementById('hiddenGenere').value=genereNumberCopy; //Dobbiamo procedere solo se l'ogetto xmlHttp non è impegnato if(xmlHttp.readyState == 4 || xmlHttp.readyState == 0) { //metto il colore al pulsante per mostrarlo selezionato if(GenereNumber == 1) { // alla scelta del button gli assegno un colore per far capire che è stato selezionato e lo tolgo all'altro document.getElementById("bDefault").style.color="#FF9900"; document.getElementById("bPersonalizzato").style.color=""; } else if(GenereNumber == 2) { // alla scelta del button gli assegno un colore per far capire che è stato selezionato e lo tolgo all'altro document.getElementById("bDefault").style.color=""; document.getElementById("bPersonalizzato").style.color="#FF9900"; } //eseguiamo la pagina php ovvero quickstart.php sul server xmlHttp.open("GET", "../_script/createSelect.php?cat="+categoryNumberCopy+"&gen="+GenereNumber,true); //definiamo il metodo per gestire le risposte del server xmlHttp.onreadystatechange = setGenereResponse; // Effettuiamo la richiesta al server xmlHttp.send(null); } else //Se la connessione è impegnata allora rproviamo dopo 1 secondo setTimeout('setGenere(genereNumberCopy)', 1000); } // Eseguita automaticamente quando viene ricevuto un messaggio dal server function setGenereResponse() { //Procediamo solo se la transazione è completata if(xmlHttp.readyState == 4) { //lo status 200 indica che la transazione è stata eseguita con successo if(xmlHttp.status == 200) { //estraiamo l'xml ricevuto dal server var selectGenResponse = xmlHttp.responseText; document.getElementById("selDiv").innerHTML = selectGenResponse; } else { alert("C'è stato un problema nell'accesso al server:" + xmlHttp.statusText); } } }
ora i button creati mi permetteranno di eliminare un genere(sempre che ci sia) con la funzione DelGenereCodice PHP:$queryGenere = "SELECT ID_Genere,Nome_Genere FROM Genere
INNER JOIN Cat_Gen ON Genere.ID_Genere = Cat_Gen.ID_Gen
INNER JOIN Categoria ON Categoria.ID_Categoria = Cat_Gen.ID_Cat
WHERE Categoria.ID_Categoria = $typeOfCategory AND Genere.User_Personalize=$id_utente";
$countPersonalGender = mysql_query("SELECT COUNT(Genere.ID_Genere) AS Tot_Gender
FROM Genere
INNER JOIN Cat_Gen ON Genere.ID_Genere = Cat_Gen.ID_Gen
INNER JOIN Categoria ON Categoria.ID_Categoria = Cat_Gen.ID_Cat
WHERE Categoria.ID_Categoria = $typeOfCategory AND Genere.User_Personalize=$id_utente
");
$result_countPersonalGender = mysql_fetch_array($countPersonalGender);
$Tot_countPersonalGender=$result_countPersonalGender['Tot_Gender'];
//echo"Generi Personali: $Tot_countPersonalGender
";
if($Tot_countPersonalGender==0)
{ ?>
<select name="selGenere" id="selGenere" style="display:none" >
<option value="--"></option>
</select>
<?php }
if($Tot_countPersonalGender>0)
{
?>
<select name="selGenere" id="selGenere">
<?php
$strSQL = "$queryGenere";
$dbh=mysql_query($strSQL) OR die("Errore 003, contattare l'amministratore ".mysql_error()) ;
while ($riga = mysql_fetch_array($dbh)) {
$ID_Genere = $riga['ID_Genere'];
$Nome_Genere = $riga['Nome_Genere'];
if(($ID_Genere==$selectedGenOption)&&($selectedGenOption<>''))
echo '<option value="'.$ID_Genere.'" selected="selected">'.$Nome_Genere.'</option>';
else
echo '<option value="'.$ID_Genere.'">'.$Nome_Genere.'</option>';
}
?>
</select>
<?php
}
?>
<button type="button" id="bAddPersonal" name="bAddPersonal" onclick="AddGenere();">+</button>
<?php
if($Tot_countPersonalGender>0)
{
?>
<button type="button" id="bDelPersonal" name="bDelPersonal" onclick="DelGenere(document.MyForm.selGenere.value);" style="color:#555;">Del</button>
<?php
}
e di aggiungerlo con addGenere()codice:function DelGenere(IdGenere) { // l'idea è di creare una chiamata asincrona al server per mandargli l'id del genere da eliminare // poi riaggiornare il div con i soli generi disponibili magari richiamando la funzione setGenere // da considerare che forse dovremo mettere come variabile globale GenereNumber if(xmlHttp.readyState == 4 || xmlHttp.readyState == 0) { xmlHttp.open("GET","../_script/_addDelElements.php?idGen="+IdGenere+"&operation=selDel",true); xmlHttp.onreadystatechange = DelGenereResponse; xmlHttp.send(null); } else setTimeout('DelGenere(IdGenere)', 1000); } // Eseguita automaticamente quando viene ricevuto un messaggio dal server function DelGenereResponse() { //Procediamo solo se la transazione è completata if(xmlHttp.readyState == 4) { //lo status 200 indica che la transazione è stata eseguita con successo if(xmlHttp.status == 200) { //estraiamo l'xml ricevuto dal server xmlHttp.responseText; document.getElementById('hiddenPersonalGenere').value=0; setGenere(2); } else { alert("C'è stato un problema nell'accesso al server:" + xmlHttp.statusText); } } }
Ho molto rispetto per voi che siete ad un livello molto più alto del mio e solo perchè guardate il mio post vi ringrazio moltissimo..codice:function AddGenere() // funzione che crea la textbox e ti permette di inserire un genere personalizzato { //creo degli elementi per inserirli nel div al posto della select! var textBoxGen = '<input type="text" id="textBoxGen" name="textBoxGen" maxlength="41" onkeyup="Contar(\'textBoxGen\',\'contGenRim\',\'{CHAR}\',41);" />'; var addGenButton = '<button type="button" id="addGenButton" name="addGenButton" onclick="ControlGen(document.MyForm.textBoxGen.value);" >+</button>'; var contGenRim = '<span id="contGenRim">41</span>'; var closeTextGen = '<button type="button" id="closeTextGen" name="closeTextGen" onclick="setGenere(2);" >-</button>'; document.getElementById('selDiv').innerHTML=addGenButton+textBoxGen+contGenRim+closeTextGen; //mi ricavo la hidden di quando clicco per immettere un genere selezionato e gli metto valore 1 //per far capire che è in modifica document.getElementById('hiddenPersonalGenere').value=1; } function ControlGen(textBoxGen) { //funzione che controlla la validità della textbox di aggiunta genere e lo invia allo script var textBoxGen2=trim(textBoxGen); textBoxGen=textBoxGen2.replace(/[\ ]/g,"|"); var colora=2; if(textBoxGen!="") { $('#selDiv').load('../_script/_addDelElements.php?txtInput='+textBoxGen+'&operation=addGenere&catCtrl='+categoryNumberCopy, function(){ if(colora == 0) coloraBottone(); }); document.getElementById('ErrorPersonalized').style.display="none"; document.getElementById('hiddenPersonalGenere').value=0; } else { AddGenere(); var errorePersonalizzato = '!)Se vuoi aggiungere un genere personalizzato non puoi lasciare il campo vuoto.'; document.getElementById('ErrorPersonalized').innerHTML=errorePersonalizzato; document.getElementById('ErrorPersonalized').style.display="block"; } } function coloraBottone() { document.getElementById("bDefault").style.color="#FF9900"; document.getElementById("bPersonalizzato").style.color=""; }

Rispondi quotando