Problema jquery Success

Emanuele85

Utente Attivo
30 Gen 2021
117
0
16
Buonasera a tutti, volevo chiedervi una info, magari banale... ma vorrei capire come funziona. Mi spiego, ho costruito una pagina html che dovrebbe salvare dati su Mysql, al salvataggio di questi dati dovrebbe permettermi l'inserimento di altri dati ecc...
Ho optato per la soluzione jquery in questo modo:

JavaScript:
$(function() {
  $('#agg_es_visivo').on('click', function() { 
    
    var random_id_commento=$('#id_commento').val();
    var id_utente= $('#id_utente').val();
    var id_cantina= $('#id_cantina').val();
    var nome_vino_ev= $('#nome_vino_ev').val();
    var annata_ev= $('#annata_ev').val();   
    var limpidezza=$('#limpidezza').val();
    var colore= $('#colore').val();
    var consistenza=$('#consistenza').val();
    var grana_bollicine=$('#grana_bollicine').val();
    var numero_bollicine=$('#numero_bollicine').val();
    var persistenza_bollicine=$('#persistenza_bollicine').val();
    var note_ev=$('#note_ev').val();      
   
     $.ajax({
      type:'POST',  
     dataType : 'json',       
      url:'funzioni.php',       
      data : {'id_cantina' : id_cantina,'random_id_commento' : random_id_commento,'id_utente' : id_utente,'nome_vino_ev' : nome_vino_ev,'annata_ev' : annata_ev,'limpidezza' : limpidezza,'colore' : colore,'consistenza' : consistenza,'grana_bollicine' : grana_bollicine,'numero_bollicine' : numero_bollicine,'persistenza_bollicine' : persistenza_bollicine,'note_ev' : note_ev},
      success: function (data) {
        $('#agg_es_visivo').hide();
     },
     error: function() {          
          alert("Errore");
     }
     });
      
  });
});


PHP

PHP:
if (isset($_POST['random_id_commento'])) {
    
    $random_id=mt_rand(100000000, 999999999);
    $random_id_commento=$_POST['random_id_commento'];
    $id_utente= $_POST['id_utente'];
    $id_cantina= $_POST['id_cantina'];
    $nome_vino_ev= $_POST['nome_vino_ev'];
    $annata_ev= $_POST['annata_ev'];   
    $limpidezza=$_POST['limpidezza'];
    $colore= $_POST['colore'];
    $consistenza=$_POST['consistenza'];
    $grana_bollicine=$_POST['grana_bollicine'];
    $numero_bollicine=$_POST['numero_bollicine'];
    $persistenza_bollicine=$_POST['persistenza_bollicine'];
    $note_ev=$_POST['note_ev'];   
    $timestamp_commento =date('Y-m-d H:i:s');
  

    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);         
             try {
      
                   $dbh->beginTransaction();

                   $sql= "INSERT INTO commenti_vino(id_commento,data_commento, utente_commento,id_cantina,nome_vino_ev,annata_ev) ";                   
                   $sql.= "VALUES ";
                   $sql.= "(:id_commento,:data_commento,:utente_commento,:id_cantina,:nome_vino_ev,:annata_ev)";
                  
                   $query=$dbh->prepare($sql);   
                   $query->bindParam(':id_commento',$random_id_commento,PDO::PARAM_STR);
                   $query->bindParam(':data_commento',$timestamp_commento,PDO::PARAM_STR);             
                   $query->bindParam(':utente_commento',$_SESSION['utente_id'],PDO::PARAM_STR);
                   $query->bindParam(':id_cantina',$id_cantina,PDO::PARAM_STR);
                   $query->bindParam(':nome_vino_ev',$nome_vino_ev,PDO::PARAM_STR);
                   $query->bindParam(':annata_ev',$annata_ev,PDO::PARAM_STR);       

                  $query->execute();

                   $sql= "INSERT INTO esame_visivo(id_commento,id_esame_visivo,limpidezza,colore, ";
                   $sql.= "consistenza,grana_bollicine,numero_bollicine,persistenza_bollicine,note_ev) ";
                   $sql.= "VALUES ";
                   $sql.= "(:id_commento,:id_esame_visivo,:limpidezza,:colore, ";
                   $sql.= ":consistenza,:grana_bollicine,:numero_bollicine,:persistenza_bollicine,:note_ev)";
                  
                   $query=$dbh->prepare($sql);   
                   $query->bindParam(':id_commento',$random_id_commento,PDO::PARAM_STR);
                   $query->bindParam(':id_esame_visivo',$random_id,PDO::PARAM_STR);                     
                   $query->bindParam(':limpidezza',$limpidezza,PDO::PARAM_STR);
                   $query->bindParam(':colore',$colore,PDO::PARAM_STR);
                   $query->bindParam(':consistenza',$consistenza,PDO::PARAM_STR);
                   $query->bindParam(':grana_bollicine',$grana_bollicine,PDO::PARAM_STR);
                   $query->bindParam(':numero_bollicine',$numero_bollicine,PDO::PARAM_STR);
                   $query->bindParam(':persistenza_bollicine',$persistenza_bollicine,PDO::PARAM_STR);
                   $query->bindParam(':note_ev',$note_ev,PDO::PARAM_STR);

                  $query->execute();   
    
                  $dbh->commit();   
                  
                  } catch (PDOException $e) {
            
                    $message = $e->getMessage();           
                    echo '<script type="text/javascript">alert("'.$message.'");</script>';   
                    $dbh->rollback();
                    
                  }
}

non riesco a capire cosa fa... io vorrei semplicemente farmi restituire un messaggio di errore se la query non va a buon fine, altrimenti deve nascondere il bottone. Adesso tra i vari test e modifiche, o va sempre in errore o va sempre ok (anche quando non salva).

Dove sto sbagliando?

Grazie a tutti
E
 
ti rispondo solo ora, perché la tua domanda ha richiesto tempo da dedicare

prima cosa, "success" e "error" si riferiscono alla chiamata "ajax" non al risultato delle tue query,
il risultato delle query va gestito nella funzione "success" per la risposta ricevuta

ho modificato il tuo codice cercando di spendere meno tempo possibile,
fai tu uno sforzo per capirlo e renderlo operativo per la tua necessità

HTML:
<!DOCTYPE html>
<html>
<head>
   <title>vino</title>
</head>
<body>
  <h1>valutazione vino</h1><br /><br />

  <span id="agg_es_visivo" style="cursor: pointer; text-decoration: underline">
    Make a request
  </span>

<script type='text/javascript' src='http://localhost/test_site/php/jquery.min.js'></script>

<script type="text/javascript">
  alert('ci sono !');

  $(function() {
    $('#agg_es_visivo').on('click', function() {
      var random_id_commento    = '#id_commento';            /* $('#id_commento').val();            */
      var id_utente             = '#id_utente';              /* $('#id_utente').val();              */
      var id_cantina            = '#id_cantina';             /* $('#id_cantina').val();             */
      var nome_vino_ev          = '#nome_vino_ev';           /* $('#nome_vino_ev').val();           */
      var annata_ev             = '#annata_ev';              /* $('#annata_ev').val();              */
      var limpidezza            = '#limpidezza';             /* $('#limpidezza').val();             */
      var colore                = '#colore';                 /* $('#colore').val();                 */
      var consistenza           = '#consistenza';            /* $('#consistenza').val();            */
      var grana_bollicine       = '#grana_bollicine';        /* $('#grana_bollicine').val();        */
      var numero_bollicine      = '#numero_bollicine';       /* $('#numero_bollicine').val();       */
      var persistenza_bollicine = '#persistenza_bollicine';  /* $('#persistenza_bollicine').val();  */
      var note_ev               = '#note_ev'                 /* $('#note_ev').val();                */
      $.ajax
      ({
        type     : 'post',

        cache    : false,

//        dataType : 'json',

        url      : 'VinoValutazioneExec.php',
     
        data     : {id_cantina            : id_cantina,
                    random_id_commento    : random_id_commento,
                    id_utente             : id_utente,
                    nome_vino_ev          : nome_vino_ev,
                    annata_ev             : annata_ev,
                    limpidezza            : limpidezza,
                    colore                : colore,
                    consistenza           : consistenza,
                    grana_bollicine       : grana_bollicine,
                    numero_bollicine      : numero_bollicine,
                    persistenza_bollicine : persistenza_bollicine,
                    note_ev               : note_ev
                   },

        success: function (response) {
//          $('#agg_es_visivo').hide();
          alert('risposta : '+response);
        },

        error: function(request, status, error) {
          alert('ERRORE : il server non risponde o lo ha fatto in modo anomalo '+request.responseText);
        }

      });
    });
  });
</script>

</body>
</html>


PHP:
<?php
ini_set('log_errors', 1);
ini_set('error_log', 'VinoValutazioneExec.log');

error_log("message : VinoValutazioneExec", 0);

if ( !empty($_POST) )
{
  error_log("message : ok data", 0);
  error_log($_POST['id_cantina'], 0);

  echo "ciao, ho risposto alla tua richiesta !";
}
?>

segue il log

PHP:
[19-Jan-2023 13:44:00 Europe/Rome] message : VinoValutazioneExec
[19-Jan-2023 13:44:00 Europe/Rome] message : ok data
[19-Jan-2023 13:44:00 Europe/Rome] #id_cantina
 
php con 3 possibili risposte

PHP:
<?php
ini_set('log_errors', 1);
ini_set('error_log', 'VinoValutazioneExec.log');

error_log("message : VinoValutazioneExec", 0);

if ( !empty($_POST) )
{
  error_log("message : ok data", 0);

  $random_id             = mt_rand(100000000, 999999999);
  $random_id_commento    = $_POST['random_id_commento'];
  $id_utente             = $_POST['id_utente'];
  $id_cantina            = $_POST['id_cantina'];
  $nome_vino_ev          = $_POST['nome_vino_ev'];
  $annata_ev             = $_POST['annata_ev'];  
  $limpidezza            = $_POST['limpidezza'];
  $colore                = $_POST['colore'];
  $consistenza           = $_POST['consistenza'];
  $grana_bollicine       = $_POST['grana_bollicine'];
  $numero_bollicine      = $_POST['numero_bollicine'];
  $persistenza_bollicine = $_POST['persistenza_bollicine'];
  $note_ev               = $_POST['note_ev'];  
  $timestamp_commento    = date('Y-m-d H:i:s');

  error_log($random_id, 0);
  error_log($id_cantina, 0);
  error_log($timestamp_commento, 0);

/*
  $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
       
  try {
     
    $dbh->beginTransaction();

    $sql= "INSERT INTO commenti_vino(id_commento,data_commento, utente_commento,id_cantina,nome_vino_ev,annata_ev) ";  
    $sql.= "VALUES ";
    $sql.= "(:id_commento,:data_commento,:utente_commento,:id_cantina,:nome_vino_ev,:annata_ev)";
                 
    $query=$dbh->prepare($sql);
 
    $query->bindParam(':id_commento',$random_id_commento,PDO::PARAM_STR);
    $query->bindParam(':data_commento',$timestamp_commento,PDO::PARAM_STR);            
    $query->bindParam(':utente_commento',$_SESSION['utente_id'],PDO::PARAM_STR);
    $query->bindParam(':id_cantina',$id_cantina,PDO::PARAM_STR);
    $query->bindParam(':nome_vino_ev',$nome_vino_ev,PDO::PARAM_STR);
    $query->bindParam(':annata_ev',$annata_ev,PDO::PARAM_STR);      

    $query->execute();

    $sql= "INSERT INTO esame_visivo(id_commento,id_esame_visivo,limpidezza,colore, ";
    $sql.= "consistenza,grana_bollicine,numero_bollicine,persistenza_bollicine,note_ev) ";
    $sql.= "VALUES ";
    $sql.= "(:id_commento,:id_esame_visivo,:limpidezza,:colore, ";
    $sql.= ":consistenza,:grana_bollicine,:numero_bollicine,:persistenza_bollicine,:note_ev)";
                 
    $query=$dbh->prepare($sql);

    $query->bindParam(':id_commento',$random_id_commento,PDO::PARAM_STR);
    $query->bindParam(':id_esame_visivo',$random_id,PDO::PARAM_STR);    
    $query->bindParam(':limpidezza',$limpidezza,PDO::PARAM_STR);
    $query->bindParam(':colore',$colore,PDO::PARAM_STR);
    $query->bindParam(':consistenza',$consistenza,PDO::PARAM_STR);
    $query->bindParam(':grana_bollicine',$grana_bollicine,PDO::PARAM_STR);
    $query->bindParam(':numero_bollicine',$numero_bollicine,PDO::PARAM_STR);
    $query->bindParam(':persistenza_bollicine',$persistenza_bollicine,PDO::PARAM_STR);
    $query->bindParam(':note_ev',$note_ev,PDO::PARAM_STR);

    $query->execute();  
   
    $dbh->commit();

    echo "ciao, ho completato gli aggiornamenti come da tua richiesta !";
                 
  }
  catch (PDOException $e) {

    echo "ciao, ho trovato un problema,";
    echo $e->getMessage();

    $dbh->rollback();
  }
*/

  echo "ciao, ho risposto alla tua richiesta !";
}
?>


giusto il log

PHP:
[19-Jan-2023 14:08:56 Europe/Rome] message : VinoValutazioneExec
[19-Jan-2023 14:08:56 Europe/Rome] message : ok data
[19-Jan-2023 14:08:56 Europe/Rome] 871083572
[19-Jan-2023 14:08:56 Europe/Rome] #id_cantina
[19-Jan-2023 14:08:56 Europe/Rome] 2023-01-19 14:08:56
 

Discussioni simili