Visualizzazione dei risultati da 1 a 4 su 4

Discussione: problema script ajax

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    155

    problema script ajax

    salve signori parto con la premessa che non ho molta dimestichezza con javascript... vi spiego.

    sparo con una pistola di codice a barre su un barcode... il valore di questo barcode dovrebbe essere riportato su un campo imput text..clicco poi sul bottone input con id submit e dovrebbe andare a fare quello che sta scritto su index2.php (ovvero selezionarmi all'interno del database quel record che ha come codice prodotto lo stesso valore del barcode inviato)..il problema sta quando clicco sul bottone di submit... non succede nulla, rimane tutto fermo!! c'è qualcosa che non va con lo script? vi posto qua sotto i codici

    HTML
    codice HTML:
    <head>
    
    <script type='text/javascript' src='barcode.js'></script>
    
    </head>
    
    <body>
    
    <div style='position: absolute; top:20%; width: 100px;'>
    <input type='text' id='barcode' name='barcode' placeholder='BarCode'>
    <input type='submit' id='submit' name='sendbarcode'  placeholder='sendbarcode'>
    </div>
    
    </body>
    </html>
    barcode.js
    codice:
    $(document).ready(function(){
    
                $("#submit").click(function(){
                    var barcode =  $("#barcode").val();
                    $.post("index2.php", 
                    {
                        barcode: barcode
                
                    },function(data,status){
                        alert(status);
    
                    });
    
    
               });
               
               
        });
    index2.php
    codice:
    header("Content-type: text/html; charset=ISO-8859-1");     
    
    $link = mysqli_connect("localhost", "xxxxxx", "xxxxxx", "xxxxxx");
     
    
    if($link === false){
        die("ERROR: Could not connect. " . mysqli_connect_error());
    }
     
    $barcode = $_GET['barcode'];
    
    $sql = "SELECT * FROM inventario WHERE Cod_prodotto='$barcode'";
    if($result = mysqli_query($link, $sql)){
        if(mysqli_num_rows($result) > 0){
            echo "<table class='center'>";
                echo "<tr>";
                    echo "<th>Cod.prodotto</th>";
                    echo "<th>Categoria prodotto</th>";
                    echo "<th>Descrizione</th>";
                    echo "<th>Immagine</th>";
                    echo "<th>Prezzo unitario</th>";
                    echo "<th>Quantita' rimaste</th>";
                    
                echo "</tr>";
            while($row = mysqli_fetch_array($result)){
                echo "<tr>";
                    echo "<td>" . $row['Cod_prodotto'] . "</td>";
                    echo "<td>" . $row['Categoria'] . "</td>";
                    echo "<td>" . $row['Descrizione'] . "</td>";
                    echo "<td><img src='data:image/jpeg;base64,".base64_encode($row['Img'])."'/></td>";
                    echo "<td>" . $row['Prezzo_unitario'] . "</td>";
                    echo "<td>" . $row['Quantita_rimaste'] . "</td>";
                    
                    
                echo "</tr>";
            }
            echo "</table>";
            
            mysqli_free_result($result);
        } else{
            echo "";
        }
    } else{
        echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
    }
     
    
    mysqli_close($link);

  2. #2
    Utente di HTML.it L'avatar di ilgiovo
    Registrato dal
    Aug 2001
    Messaggi
    518
    Prova ad attivare gli strumenti per sviluppatori (F12 nel browser, ma dipende da quale browser usi), eseguire lo script e vedere se in consolo dà qualche messaggio di errore che ti può aiutare a capire dov'è il problema.

    Con gli strumenti puoi anche debuggare il codice passo-passo e tenere controllati i valori delle variabili
    Cacca!

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    155
    ho risolto grazie al consiglio di ilgiovo usando lo strumento per sviluppatori che mi ha fatto capire il problema (dovevo inserire dentro l'head html i seguenti script):

    <script src='https://code.jquery.com/jquery-3.3.1.js'></script>
    <script src='https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js'></script>


    adesso ho un altra questione:

    AJAX
    codice:
    $(document).ready(function(){
    
                $("#submit").click(function(){
                    var barcode =  $("#barcode").val();
                    $.post("index2.php", 
                    {
                        barcode: barcode
                
                    },function(data,status){
                        alert(status);
    
                    });
    
    
               });
               
               
        });

    HTML
    codice:
    <form action='index2.php' method='get'>
    
    <input type='text' id='barcode' name='barcode' placeholder='BarCode'>
    
    <input type='submit' id='submit' name='sendbarcode'  placeholder='sendbarcode' value'invia'>
    
    </form>
    vorrei praticamente che appena arriva un valore dentro l'input text, il bottone submit viene cliccato "automaticamente" (ovviamente se non arriva nessun valore nell'input text il bottone di submit NON DEVE partire automaticamente)... è una cosa fattibile? mi dareste una mano per favore

  4. #4
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592
    Modifica il codice in javascript e non in jquery... nella parte che ti serve intercettare il tasto invio nel campo texe del barcode
    Usa una function javascript per inviare i dati
    con l'evento onKeydown attivato rileva il carattere invio Chr(13) che la pistola puo mandare dopo il colice letto
    Sarebbe come simulare l'input text e dare invio sul campo. poi sulla funzione chiama il programma index2.php
    Io ho usato onKeyDown="SpostaUpDown(<%=i%>, 1, event)" in una matrice tipo excel di righe e colonne e il codice
    codice:
    function SpostaUpDown(R, C, e) {
     var code = e.keyCode ? e.keyCode : e.charCode 
    // alert("R="+R+" C="+C);
            if (code == 38) {
                SetFocus(R - 1, C);
     //           alert("Up");
            }
            else
                if (code == 40) {
     //           alert("DN");
                  SetFocus(R + 1, C);
                }
            else
                if (code == 13) {
                 Invio(R, C, e);
                }    
     }
    dove la funzione Invio esegue quello che in pratica vuoi fare tu chiamare il programma index2.php per esempio
    senza usare Submit di jquery... ma una chiamata javascript tipo ajax
    La funzione Invio la devi costruire tu per il tuo caso quella mostrata a te non funzionerebbe ma è un esempio di intercettazione del tasto invio

    codice:
    function Invio(BC) {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
          if (this.readyState == 4 && this.status == 200) {
           // quivricarichi la riga dati con il result del programma eseguito 
            alert(this.responseText);
            }
        };
        xmlhttp.open("GET", "index2.php?barcode=" + BC, true);
          xmlhttp.send();
    }
    Considera questo codice da modificare per il tuo caso... perche devi modificarlo naturalmente
    Vic53

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.