Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555

    Problema controlli su form con scelta multipla

    Allora ragazzi,
    il problema è questo. Ho un form di questo tipo:

    Codice PHP:
    <input type="hidden" name="id" value="<?php echo " "$_GET['id'] . " "?>">
    <tr>
    <TD align="center"><?php if ($array['disponibilitainteri']==0){echo "no";}else{echo"si";}?></TD>
    <TD align="center"><?php echo "$array[prezzointeri]";?></TD>
    <TD><SELECT NAME="numerointeri" onchange="calcolatotale();";>
    <OPTION>0</OPTION>
    <OPTION>1</OPTION>
    <OPTION>2</OPTION>
    <OPTION>3</OPTION>
    <OPTION>4</OPTION>
    <OPTION>5</OPTION>
    </SELECT>
    </TD>
    </tr>
    <tr>
          <td><div>Disponibilità</div></td>
          <td><div>Prezzo</div></td>
          <td><div>Qtà</div></td>
          </TR>
    <tr>
    <TD align="center"><?php if ($array['disponibilitaridotti']==0){echo "no";}else{echo"si";}?></TD>
    <TD align="center"><?php echo "$array[prezzoridotti]";?></TD>
    <TD><SELECT NAME="numeroridotti" onchange="calcolatotale();";>
    <OPTION>0</OPTION>
    <OPTION>1</OPTION>
    <OPTION>2</OPTION>
    <OPTION>3</OPTION>
    <OPTION>4</OPTION>
    <OPTION>5</OPTION>
    </SELECT>
    </TD>
    <tr>
          <td><div>Disponibilità tavoli</div></td>
          <td><div>Prezzo</div></td>
          <td><div>Qtà</div></td>
          <td><div>Totale</div></td> 
          </TR>
    <tr>
    <TD align="center"><?php if ($array['disponibilitatavoli']==0){echo "no";}else{echo"si";}?></TD>
    <TD align="center"><?php echo "$array[prezzotavoli]";?></TD>
    <TD><SELECT NAME="numerotavoli" onchange="calcolatotale();";>
    <OPTION>0</OPTION>
    <OPTION>1</OPTION>
    <OPTION>2</OPTION>
    <OPTION>3</OPTION>
    <OPTION>4</OPTION>
    <OPTION>5</OPTION>
    </SELECT>
    Praticamente cosa mi consente di fare? Di effettuare acquisti su diversi tipi di prodotti, poi mi calcola il totale con uno script java.

    Or bene, ecco il problema. Questi i controlli sui vari campi:

    Codice PHP:
    $disponibilitainteri mysql_result($query0'disponibilitainteri');
    $disponibilitaridotti mysql_result($query0'disponibilitaridotti');
    $disponibilitatavoli mysql_result($query0'disponibilitatavoli');
    $disponibilita mysql_result($query0'disponibilita');
    $event_id mysql_result($query0'event_id');
    $utente_id =  mysql_result($query0'utente_id');
    mysql_free_result($query);

    if (
    $disponibilitainteri == 0) {
    echo 
    "<h3>Spiacente, ma non ci sono biglietti interi disponibili.</h3>";
    } elseif (
    $disponibilitainteri $numerointeri) {
    echo 
    "<h3>Spiacente, ma sono disponibili solo $disponibilitainteri biglietti interi.</h3>
    Torna alla pagina di acquisto
    "
    ;
    } elseif (
    $disponibilitaridotti == 0) {
    echo 
    "<h3>Spiacente, ma non ci sono biglietti ridotti disponibili.</h3>";

    elseif (
    $disponibilitaridotti $numeroridotti) {
    echo 
    "<h3>Spiacente, ma sono disponibili solo $disponibilitaridotti biglietti ridotti.</h3>
    Torna alla pagina di acquisto
    "
    ;} 
    elseif (
    $disponibilitatavoli == 0) {
    echo 
    "<h3>Spiacente, ma non ci sono tavoli disponibili.</h3>";

    elseif (
    $numerotavoli $disponibilitatavoli) {
    echo 
    "
    <h3>Spiacente, ma sono disponibili solo 
    $disponibilitatavoli tavoli.</h3>
    Torna alla pagina di acquisto
    "
    ;
    }
    else {
    // metto l'ordine nel DB

    mysql_query("
    insert into ordini (numero, numerointeri, numeroridotti, numerotavoli, totale, event_id, utente_id)
    values ('
    $numero', '$numerointeri', '$numeroridotti', '$numerotavoli', '$totale', '$event_id', '$utente_id')")
    or die( 
    mysql_error() . "
    $sql) ; 
    Ora, mi basta ad esempio che il primo controllo, ossia quello sulla disponibilità dei biglietti interi, verifichi la condizione = a zero e mi blocca lo script. Ma ciò è sbagliato, perchè potrebbero esservi biglietti ridotti disponibili, per cui l'utente potrebbe voler scegliere di acquistare quelli ridotti ma non gli viene consentito perchè il primo controllo blocca l'intero script. Stesso discorso per i tavoli.

    Se non ci sono più biglietti, ma un utente vuole un tavolo, non può acquistarlo per i controlli precedenti inibiscono la prosecuzione dello script. Come risolvere il problema? Fare in modo cioè che se ad esempio non vi sono più biglietti interi disponibili, si possa ugualmente comprare quelli ridotti o i tavoli.


  2. #2
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    555
    Magari dirò una boiata,
    pensavo di fare un controllo per singolo campo e poi fare l'inserimento in database:

    ad esempio:
    Codice PHP:
    if ($disponibilitainteri == 0) {
    echo 
    "<h3>Spiacente, ma non ci sono biglietti interi disponibili.</h3>";
    } elseif (
    $disponibilitainteri $numerointeri) {
    echo 
    "<h3>Spiacente, ma sono disponibili solo $disponibilitainteri biglietti interi.</h3>
    Torna alla pagina di acquisto
    "
    ;
    else {
    // metto l'ordine nel DB

    mysql_query("
    insert into ordini (numero, numerointeri, numeroridotti, numerotavoli, totale, event_id, utente_id)
    values ('
    $numero', '$numerointeri', '$numeroridotti', '$numerotavoli', '$totale', '$event_id', '$utente_id')")
    or die( 
    mysql_error() . "
    $sql) ; 
    poi fare un altro controllo sul secondo campo, cioè su disponibilitaridotti, e nuovamente l'inserimento in database.

    Infine l'ultimo controllo con l'ultimo inserimento in database. Potrebbe funzionare oppure è qualcosa di improponibile e sbagliato??

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.