Alert non viene mostrato

Emanuele85

Utente Attivo
30 Gen 2021
117
0
16
Buon pomeriggio a tutti, volevo chiedervi una cosa, sono certo che è un mio errore di concetto, ma non riesco a capre dove sto sbagliando. Ho un bottone che al click (utilizzando ajax) richiama un file "funzioni.php" che esegue delle insert in un db mysql. Sono stato costretto ad utilizzare questo stratagemma perchè l'applicativo prevede l'utilizzo di un lettore barcode, e ogni volta mi faceva il submit. Il problema è uno, perchè non riesco a farmi comparire gli alert dal file "funzioni.php"??? non visualizzo neppure gli errori della transaction. Vi posto un po di codice, cosi magari è più chiaro:

Script Ajax:

JavaScript:
<script type="text/javascript">

$(function() {
  $('#crea_articolo').on('click', function() {
 
     var cod_articolo = $('#cod_articolo').val();
     var cod_interno = $('#cod_interno').val();
     var desc_articolo = $('#desc_articolo').val();
     var costruttore = $('#costruttore').val();
     var categoria =$('#categoria').val();
     var qta_minima = $('#qta_minima').val();
     var qta_attuale = $('#qta_attuale').val();
     var posizione = $('#posizione').val();
     var fornitore =$('#fornitore').val();
     var prezzo = $('#prezzo').val();
     var off_n = $('#off_n').val();   

     $.ajax({
         type:'post',
              
      url:'funzioni.php',
      dataType: 'json',     
      data : {'barcode' : cod_articolo,'cod_interno' : cod_interno,'desc_articolo' : desc_articolo,'costruttore' : costruttore,'categoria' : categoria,'qta_minima' : qta_minima,'qta_attuale' : qta_attuale,'posizione' : posizione,'fornitore' : fornitore,'prezzo' : prezzo,'off_n' : off_n},
      success : function(data){
    
      }     
     });
        
  });
});

</script>

funzioni.php:

PHP:
if (isset($_POST['barcode'])) {
    
    $acctid=mt_rand(100000000, 999999999);
    $cod_articolo=$_POST['barcode'];
    $cod_interno=$_POST['cod_interno'];
    $desc_articolo=$_POST['desc_articolo'];
    $costruttore=$_POST['costruttore'];
    $categoria=$_POST['categoria'];
    $qta_minima=$_POST['qta_minima'];
    $qta_attuale=$_POST['qta_attuale'];
    $posizione=$_POST['posizione'];
    $fornitore=$_POST['fornitore'];
    $prezzo=$_POST['prezzo'];
    $off_n=$_POST['off_n']; 
    
    
    $sql1="SELECT * from  articoli where codice_articolo=:codice_articolo";

    $query1 = $dbh -> prepare($sql1);
    $query1->bindParam(':codice_articolo',$cod_articolo,PDO::PARAM_STR);
  
    $query1->execute();
    $results=$query1->fetchAll(PDO::FETCH_OBJ);
    
    if($query1->rowCount() > 0)
      {                 
      
      }else{
        
       $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);           
           try {
    
                 $dbh->beginTransaction();

                  $sql= "INSERT INTO articoli(id_articolo, codice_articolo,codice_ti,descr_articolo,costruttore_articolo,categoria,scorta_min,quantita_attuale, ";
                  $sql.= "posizione,fornitore,prezzo,offerta_n,nome_file) VALUES ";
                  $sql.= "(:acctid,:codice_articolo,:codice_tib,:descr_articolo,:costruttore_articolo,:categoria,:scorta_min,:quantita_attuale, ";
                  $sql.=" :posizione,:fornitore,:prezzo,:offerta_n,:nome_file)";
                  
     $query=$dbh->prepare($sql);   
     $query->bindParam(':acctid',$acctid,PDO::PARAM_STR);             
     $query->bindParam(':codice_articolo',$cod_articolo,PDO::PARAM_STR);
     $query->bindParam(':codice_tib',$cod_interno,PDO::PARAM_STR);
     $query->bindParam(':descr_articolo',$desc_articolo,PDO::PARAM_STR);           
     $query->bindParam(':costruttore_articolo',$costruttore,PDO::PARAM_STR);
     $query->bindParam(':categoria',$categoria,PDO::PARAM_STR);
     $query->bindParam(':scorta_min',$qta_minima,PDO::PARAM_STR);
     $query->bindParam(':quantita_attuale',$qta_attuale,PDO::PARAM_STR);
     $query->bindParam(':posizione',$posizione,PDO::PARAM_STR);
     $query->bindParam(':fornitore',$fornitore,PDO::PARAM_STR);   
     $query->bindParam(':prezzo',$prezzo,PDO::PARAM_STR);           
     $query->bindParam(':offerta_n',$off_n,PDO::PARAM_STR);   
     $query->bindParam(':nome_file',$nome_file,PDO::PARAM_STR);   
    
     $query->execute();   
$dbh->commit();   

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

}

Perchè qualsiasi alert vado ad inserire dopo il commit non viene visualizzato? non visualizzo neppure eventuali gli errori di Exception.
Potete darmi qualche info a riguardo?

Grazie mille
E
 
Buon pomeriggio a tutti, volevo chiedervi una cosa, sono certo che è un mio errore di concetto, ma non riesco a capre dove sto sbagliando. Ho un bottone che al click (utilizzando ajax) richiama un file "funzioni.php" che esegue delle insert in un db mysql. Sono stato costretto ad utilizzare questo stratagemma perchè l'applicativo prevede l'utilizzo di un lettore barcode, e ogni volta mi faceva il submit. Il problema è uno, perchè non riesco a farmi comparire gli alert dal file "funzioni.php"??? non visualizzo neppure gli errori della transaction. Vi posto un po di codice, cosi magari è più chiaro:

Script Ajax:

JavaScript:
<script type="text/javascript">

$(function() {
  $('#crea_articolo').on('click', function() {
 
     var cod_articolo = $('#cod_articolo').val();
     var cod_interno = $('#cod_interno').val();
     var desc_articolo = $('#desc_articolo').val();
     var costruttore = $('#costruttore').val();
     var categoria =$('#categoria').val();
     var qta_minima = $('#qta_minima').val();
     var qta_attuale = $('#qta_attuale').val();
     var posizione = $('#posizione').val();
     var fornitore =$('#fornitore').val();
     var prezzo = $('#prezzo').val();
     var off_n = $('#off_n').val();  

     $.ajax({
         type:'post',
             
      url:'funzioni.php',
      dataType: 'json',    
      data : {'barcode' : cod_articolo,'cod_interno' : cod_interno,'desc_articolo' : desc_articolo,'costruttore' : costruttore,'categoria' : categoria,'qta_minima' : qta_minima,'qta_attuale' : qta_attuale,'posizione' : posizione,'fornitore' : fornitore,'prezzo' : prezzo,'off_n' : off_n},
      success : function(data){
   
      }    
     });
       
  });
});

</script>

funzioni.php:

PHP:
if (isset($_POST['barcode'])) {
   
    $acctid=mt_rand(100000000, 999999999);
    $cod_articolo=$_POST['barcode'];
    $cod_interno=$_POST['cod_interno'];
    $desc_articolo=$_POST['desc_articolo'];
    $costruttore=$_POST['costruttore'];
    $categoria=$_POST['categoria'];
    $qta_minima=$_POST['qta_minima'];
    $qta_attuale=$_POST['qta_attuale'];
    $posizione=$_POST['posizione'];
    $fornitore=$_POST['fornitore'];
    $prezzo=$_POST['prezzo'];
    $off_n=$_POST['off_n'];
   
   
    $sql1="SELECT * from  articoli where codice_articolo=:codice_articolo";

    $query1 = $dbh -> prepare($sql1);
    $query1->bindParam(':codice_articolo',$cod_articolo,PDO::PARAM_STR);
 
    $query1->execute();
    $results=$query1->fetchAll(PDO::FETCH_OBJ);
   
    if($query1->rowCount() > 0)
      {                
     
      }else{
       
       $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);          
           try {
   
                 $dbh->beginTransaction();

                  $sql= "INSERT INTO articoli(id_articolo, codice_articolo,codice_ti,descr_articolo,costruttore_articolo,categoria,scorta_min,quantita_attuale, ";
                  $sql.= "posizione,fornitore,prezzo,offerta_n,nome_file) VALUES ";
                  $sql.= "(:acctid,:codice_articolo,:codice_tib,:descr_articolo,:costruttore_articolo,:categoria,:scorta_min,:quantita_attuale, ";
                  $sql.=" :posizione,:fornitore,:prezzo,:offerta_n,:nome_file)";
                 
     $query=$dbh->prepare($sql);  
     $query->bindParam(':acctid',$acctid,PDO::PARAM_STR);            
     $query->bindParam(':codice_articolo',$cod_articolo,PDO::PARAM_STR);
     $query->bindParam(':codice_tib',$cod_interno,PDO::PARAM_STR);
     $query->bindParam(':descr_articolo',$desc_articolo,PDO::PARAM_STR);          
     $query->bindParam(':costruttore_articolo',$costruttore,PDO::PARAM_STR);
     $query->bindParam(':categoria',$categoria,PDO::PARAM_STR);
     $query->bindParam(':scorta_min',$qta_minima,PDO::PARAM_STR);
     $query->bindParam(':quantita_attuale',$qta_attuale,PDO::PARAM_STR);
     $query->bindParam(':posizione',$posizione,PDO::PARAM_STR);
     $query->bindParam(':fornitore',$fornitore,PDO::PARAM_STR);  
     $query->bindParam(':prezzo',$prezzo,PDO::PARAM_STR);          
     $query->bindParam(':offerta_n',$off_n,PDO::PARAM_STR);  
     $query->bindParam(':nome_file',$nome_file,PDO::PARAM_STR);  
   
     $query->execute();  
$dbh->commit();  

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

}

Perchè qualsiasi alert vado ad inserire dopo il commit non viene visualizzato? non visualizzo neppure eventuali gli errori di Exception.
Potete darmi qualche info a riguardo?

Grazie mille
E
Ho momentaneamente risolto passando un messaggio da php ad ajax in questo modo:

JavaScript:
echo json_encode("Inserimento Articolo Avvenuto con Successo");

e funziona...
stessa cosa per gli errori di exception.

E' un metodo corretto secondo voi??

Grazie a tutti
E
 

Discussioni simili