• User

    Escludere inserimento record tramite controlli su record

    Salve a tutti,
    Il titolo non è tanto chiaro ora provo a spiegare in maniera dettagliata.

    Ho un database con 1 tabella e svariati campi.
    Uso datepicker per la data, e vorrei disabilitare alcune date, disabilitarle non tramite il codice php, ma tramite qualche funzione che anche gli utenti che possono disabilitare le date senza che si metta mano al codice php.
    Ho girato il web e non ho visto nessun modo di fare questa cosa.

    Ho pensato di creare un campo "date_escluse", e quando l utente va ad inserire la data nel campo prima vi inviarlo, avviene un controllo tra il campo che ha inserito l utente e la tabella creata dove ci sono le date escluse, se la data è presente compare un errore altrimenti inserisce il campo.
    Però quando inserisco più date, il controllo mi va a controllare solo l'ultima data del record e tutte le altre date scritte precedentemente non le blocca.

    Ho provato in tutti i modi ma non riesco a venirne a capo.
    Attendo vostre notizie

    Grazie


  • User Attivo

    Io farei così:

    
    var array = ["2014-06-14","2014-06-15"]; // array in cui metti tutte le date da disabilitare
    
    
    $('#element').datepicker({
        beforeShowDay: function(date){
            var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
            return [ array.indexOf(string) == -1 ]
        }
    });
    
    

  • User

    si questa è la funzione agendo direttamente sul codice, io quello volevo evitare.


  • User Attivo

    Ah, scusa, non avevo capito... ma se non modifichi il codice, come fai a fare delle modifiche? Forse non ho proprio capito la tua richiesta...


  • User

    Allora, molto brevemente ti spiego la situazione.
    Campo1 = è il campo che l utente riempie con una data per inviarlo nel db
    campo2 = è il campo della tabella dove ci sono le date.

    Ora se il campo1 corrisponde alla data che c'è nel campo2 dovrebbe apparire un errore, se è diverso invia la data al db


  • User

    Ti posto il codice

    <?/****IMPOSTO LO STYLE *****/?>
    <link rel="stylesheet" href="style.css">

    </li>

    </li>
    
    
    
    
    
    
    
    
    
    
    
    
    	</ul>
    </li>
    

    </ul>

    <br />
    <br />

    </body>
    </html>

    <? /*************************************************** FINE MENU *****************************/ ?>

    <?
    /******************************************* INZIO DISABILITAZIONE DEL TASTO INVIO**********************************************/
    ?>
    <script type="text/javascript">
    function disableF5( event ) {
    if(event.keyCode == 13 ) { //F5
    //Standard Browser
    if (event.preventDefault) event.preventDefault();

         //IE (exclude Opera with !event.preventDefault):
         if (document.all && window.event && !event.preventDefault) {
            event.cancelBubble = true;
            event.returnValue = false;
            event.keyCode = 0;
         }
         return false;
      }
    

    }
    //Associa la funzione all'evento in modo corretto e a seconda del browser
    if( window.addEventListener ) { //Standard Browsers
    window.addEventListener("keydown", disableF5, true);
    }
    else if( window.attachEvent ) { //IE
    window.attachEvent("onkeydown", disableF5);
    }
    else { //Old browsers
    //NB questo sovrascrive eventuali altre funzioni javascript associate alla pressione dei tasti...
    window["onkeydown"] = disableF5;
    }
    </script>
    <?
    /FINE DISABILITAZIONE DEL TASTO INVIO*******/
    ?>

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    <table border="1">
    <tr>

    <html lang="it">
    <head>
    <meta charset="utf-8" />

    <script src="/jsdate/jquery-1.9.1.js"></script>
    <script src="/jsdate/jquery-ui.js"></script>
    <script src="/ui/i18n/jquery.ui.datepicker-it"></script>
    <link rel="stylesheet" href="/datapicker/ui/jquery-ui.css">

    <script type='text/javascript'>//<![CDATA[
    $(window).load(function(){
    $(document).ready(function () {
    var arrDisabledDates = {};
    /**** MM/DD/YY ***/
    arrDisabledDates[new Date('$data1')] = new Date('$data1');
    // disable these exact dates:

    $('#thedate').datepicker({
    dateFormat: 'dd-mm-yy',
     minDate: new Date(),
    	altField: '#thealtdate',
        	altFormat: 'yy-mm-dd',
    
    
       beforeShowDay: function (dt) {
            var bDisable = arrDisabledDates;
            if (bDisable) return [false, '', ''];
            else return [true, '', ''];
           }
    
    
    
    
    	 
    });
    

    });
    });//]]>

    </script>

    </head>
    <td>

    Seleziona una Data : <br /><input id="thedate" type="text" name="databuona"/><br /></td>
    <?/* conversione data, campo nascosco /?><br>
    <input id="thealtdate" type="" name="nascosto" readonly /><br />
    <?/
    conversione data, campo nascosco */?>

      <td>Nome<br />
    

    <input type="text" name="paziente" /></td>

    <td>Cognome<br />
    <input type="text" name="cognome" /></td>

    <td>Telefono<br />
    <input type="text" name="telefono" /></td>

    <td>Intervento<br />
    <input type="text" name="intervento" /></td>

    <td>Paz.Studiata DA:<br />
    <input type="text" name="paz_med" /></td>
    <td>Operatore<br />
    <input type="text" name="operatore" /></td>
    <td>Note:<br />
    <input type="text" name="note" /></td>

     </table>
    

    <td><br>
    Inserito da:<br />
    <input type="text" name="login" value="<? echo $_SESSION['user_name']?>" readonly="readonly" />

    <br>
    <br>
    <br>
    <br>
    <P ALIGN="CENTER"><input type="submit" value="INVIA AL REGISTRO "; " name="inviato" /></form><br /></P>
    <br>
    </html>

    <?/*******************DATE DISABILITATE/?>

    <?
    /* dichiariamo alcune importanti variabili per collegarci al database /
    $DBhost = "localhost";
    $DBuser = "
    ";
    $DBpass = "
    *";
    $DBName = "pineta";

    /* specifichiamo il nome della nostra tabella */

    $table = "data";
    $data1 = "data1";

    include("insert2.php");

    /* Connettiamoci al database */
    mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
    @mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");

    /* impostiamo la query e cerchiamo...*/

    $sqlquery = "SELECT id, data1, motivo FROM $table ORDER by data1 ";

    $result = mysql_query($sqlquery);
    $number = mysql_num_rows($result);

    $i > 0;

    if ($number < 1) {
    print "<center><p>La ricerca non ha prodotto nessun risultato</p></center>";
    }else{
    while ($number > $i) {

    $data1 = mysql_result($result,$i,data1);

    $id = mysql_result($result,$i,id);

    $motivo = mysql_result($result,$i,motivo);

    echo " <td><tr><p><b> <td>Data: </b>$data1         <b>Motivo: </b>$motivo</td></tr><br>";

    $i++;

    }

    if(isset($_POST['inviato'])) {

    if ($nascosto == "$data1" ) {

    echo '<br><br><b><center> DATA DISABILITATA IMPOSSIBILE INSERIRE LA VISITA</center>';

    }

    else {
    mysql_select_db('pineta', mysql_connect('localhost','','**')) or die("Connessione non riuscita ");
    $query = mysql_query("INSERT INTO visite (data, paziente, cognome, telefono, intervento, paz_med, operatore, note, login) VALUES ('$nascosto','$paziente','$cognome','$telefono','$intervento','$paz_med','$operatore','$note','$login')");
    if($query) {
    echo '<br><b><br><center> Visita aggiunta correttamente</center>';

    } else

    {
    echo 'Errore query INSERT';
    }
    }
    }
    }

    ?>
    <br>
    <br>
    <br>
    </form>
    </body>
    </html>

    <? include("footer.php");?>


  • User

    nessuno sa come fare????:crying: