• User Newbie

    Select option form con query di controllo

    salve raga,
    mi serve un piccolo aiutino con del codice.

    ho un normale form html che invia dati su un db mysql.

    ho un campo data proveniente da una select option. Vorrei che alla selezione della data della select mi si esegua un count di quanti posti disponibili ci sono ancora con relativa azione successiva di non permettere la registrazione per quella data ed effettuare una echo di avviso all'utente.

    quindi lo schema logico sarebbe questo :

    1. seleziono data
    2. count record su db per quella data
    3. controllo valori, se trovo 0,1,2 record permetti se trovo 3 nega (blocco tasto submit)
    4. avviso l'utente tramite echo

    naturalmente vorrei che ciò avvenisse alla selezione della data e non solo all'invio della form, poi se non è fattibile usiamo la procedura più consona.


    allora raga, tralasciando il blocco del submit e le relative problematiche di non usare ajax ho trova questo codice modificandolo un pò ma che di sicuro è errato lo so 🙂

    nel file de form.php ho inserito nell'head questo :

    <script type="text/javascript"> 
    function showUser(str) { if (str=="") { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new 
    ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","getuser.php?q="+str,true); xmlhttp.send(); } </script>
    

    e sempre nel form.php ho impostato la select in questo modo :

    <select name="dataprova" id="dataprova" type="text" onchange="showUser(this.value)" > 
    <option selected value=""> Seleziona ... </option>
     <option value="4 Settembre 2011"> 4 Settembre 2011 </option> 
    <option value="11 Settembre 2011"> 11 Settembre 2011 </option> 
    <option value="3"> 18 Settembre 2011 </option> 
    <option value="4"> 25 Settembre 2011 </option> 
    <option value="5"> 2 Ottobre 2011 </option>
     <option value="6"> 9 Ottobre 2011 </option>
     <option value="7"> 16 Ottobre 2011 </option>
     <option value="8"> 23 Ottobre 2011 </option>
     <option value="9"> 30 Ottobre 2011 </option> 
    <option value="10"> 6 Novembre 2011 </option> 
    <option value="11"> 13 Novembre 2011 </option> 
    <option value="12"> 20 Novembre 2011 </option>
     <option value="13"> 27 Novembre 2011 </option> 
    <option value="14"> 4 Dicembre 2011 </option> 
    <option value="15"> 11 Dicembre 2011 </option>
     <option value="16"> 18 Dicembre 2011 </option> 
    </select>
    

    il file getuser.php è questo :
    [PHP]
    <?php $q=$_GET["q"];
    // richiamo lo script responsabile della connessione a MySQL require 'connect.php';
    $sql="SELECT COUNT(dataprova) FROM prenotazioni";
    $result = mysql_query($sql);

    if ($q=1) printf ("3 Posti Disponibili");
    else if ($q=2) printf ("2 Posti Disponibili");
    else printf ("1 Posto Disponibile");
    echo "(.$q.)" ?>[/PHP]

    mi aiutate a trovare gli errori ?

    nel getuser.php dovrei verificare quante volte è presente nella tabella prenotazioni campo dataprova la data della select e recuperare questo valore con un numero da 0 a 3...

    se è 0 stampo a video 3 posti disp
    se è 1 stampo a video 2 posti disp
    se è 2 stampo a video 1 posto disp
    se è 3 stampo a video nessun posto disp


  • ModSenior

    Ciao nightfrost,
    il primo errore che si nota subito è relativo agli if in cui utilizzi l'operatore di assegnazione invece che di confronto.
    Dovresti inoltre indicare l'errore che hai in maniera da determinare se è relativo al file php o riguarda il lato client (AJAX).