Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Svuotare la tabella ad ogni chiamata

    Salve ragazzi,

    ho creato uno script che preleva i dati tramite un JSON generato, funziona tutto e tramite una Select seleziono l'utente per leggere i suoi dati, questi vengono scritti in una tabella che si genera.

    Il problema che la tabella non si svuota, quindi ogni volta che selezioni l'utente nella Select, i suoi dati si sommano a quelli dell'user precedente.

    Come posso fare per svuotare la tabella ad ogni chiamata?

    codice:
    <script>function showUser(str) {
    	console.log(str);
    	    $.ajax({ 
        type: 'GET', 
        url: 'webservice.php',
        data: { q: str}, 
         contentType: 'application/json; charset=utf-8',
       // dataType: 'json',
        success: function (data) { 
        var tr;
    	console.log(data);
    		var Table = document.getElementById("txtHint");
    Table.innerHTML = "";
    
    
        for (var i = 0; i < data.length; i++) {
            tr = $('<tr/>');
            tr.append("<td>" + data[i].cliente + "</td>");
            tr.append("<td>" + data[i].tipologia_lavoro + "</td>");
            tr.append("<td>" + data[i].ore_stimate + "</td>");
            $('table').append(tr);
        }
            }});
      if (str=="") {
        document.getElementById("txtHint").innerHTML="";
        return;
    
    
      } 
    
    
      
      if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
      } else { // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
          document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        }
      }
      xmlhttp.open("GET","webservice.php?q="+str,true);
      
    //  var listItems = '<option selected="selected" value="0">- Select -</option>';
    //  for (var i = 0; i < jsonData.Table.length; i++) {
    //  listItems += "<option value='" + jsonData.Table[i].username + "'></option>";
     // }
         tr.find("tr").remove();
      xmlhttp.send();
    }
    </script>

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,101
    Prova sostituendo append con html
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Prova sostituendo append con html

    Funziona, grazie!
    Ultima modifica di GI89; 21-03-2016 a 11:35

  4. #4
    visto che usi jquery a tratti, funziona anche:

    Codice PHP:
    $(selector).empty(); 
    Questa volta, più che un voto.. è favoreggiamento.

  5. #5
    Ho usato lo stesso metodo per una tabella diversa, mi prende solo la prima riga come valore e non tutti i dati.

    Nella console visualizzo tutti i valori presenti nella tabella, quindi è evidente che funziona ma sono in errore con il caricamento dei contenuti, il codice:

    codice:
    	    $.ajax({     type: 'GET', 
        url: 'tabs.php',  
         data: { q: "getProgress~" + token + "~" + $("#reparto").val() }, 	 
         contentType: 'application/json; charset=utf-8',
        //dataType: 'json',
        success: function (data) { 
        var tr;
    	console.log(data);
    		
    		var Table = document.getElementById("txtHint");
    Table.innerHTML = "";
    
    
        for (var i = 0; i <= data.length; i++) {
            tr = $('<table style="box-shadow: 15px 20px 5px rgba(0, 0, 0, 0.37);width:100%;"><tr class="tabella"><th>Data</th><th>Cliente</th><th>Tipologia di lavoro</th><th>Ore stimate</th><th>Stato</th></tr>');
    		 tr.append("<td>" + data[i].dataCompito + "</td> ");
            tr.append("<td>" + data[i].cliente + "</td>");
            tr.append("<td>" + data[i].tipologia_lavoro + "</td>");
            tr.append("<td>" + data[i].ore_stimate + "</td>");
    		 tr.append("<td>" + data[i].stato + "</td></tr></table>");
            $('table').html(tr);
        }
    Sbaglio qualcosa nel ciclo for?

  6. #6
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,373
    Quote Originariamente inviata da GI89 Visualizza il messaggio
    Ho usato lo stesso metodo per una tabella diversa, mi prende solo la prima riga come valore e non tutti i dati.

    Nella console visualizzo tutti i valori presenti nella tabella, quindi è evidente che funziona ma sono in errore con il caricamento dei contenuti, il codice:

    codice:
            $.ajax({     type: 'GET', 
        url: 'tabs.php',  
         data: { q: "getProgress~" + token + "~" + $("#reparto").val() },      
         contentType: 'application/json; charset=utf-8',
        //dataType: 'json',
        success: function (data) { 
        var tr;
        console.log(data);
            
            var Table = document.getElementById("txtHint");
    Table.innerHTML = "";
    
    
        for (var i = 0; i <= data.length; i++) {
            tr = $('<table style="box-shadow: 15px 20px 5px rgba(0, 0, 0, 0.37);width:100%;"><tr class="tabella"><th>Data</th><th>Cliente</th><th>Tipologia di lavoro</th><th>Ore stimate</th><th>Stato</th></tr>');
             tr.append("<td>" + data[i].dataCompito + "</td> ");
            tr.append("<td>" + data[i].cliente + "</td>");
            tr.append("<td>" + data[i].tipologia_lavoro + "</td>");
            tr.append("<td>" + data[i].ore_stimate + "</td>");
             tr.append("<td>" + data[i].stato + "</td></tr></table>");
            $('table').html(tr);
        }
    Sbaglio qualcosa nel ciclo for?
    ma non mi è chiaro...se tr rappresenta una riga (prendo per buona la tua sintassi) perché inserisci in essa il tag di chiusura riga e tabella?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  7. #7
    Quote Originariamente inviata da ciro78 Visualizza il messaggio
    ma non mi è chiaro...se tr rappresenta una riga (prendo per buona la tua sintassi) perché inserisci in essa il tag di chiusura riga e tabella?
    C'è il tr della tabella ed il tr variabile, tr.append fa riferimento a var tr e non a table, non so se mi sono spiegato bene

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,101
    for (var i = 0; i <= data.length; i++) Sicuro ci voglia =?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    for (var i = 0; i <= data.length; i++) Sicuro ci voglia =?
    Ciao Andrea, ho già provato utilizzando solo < ma il risultano non cambia

  10. #10
    Come al solito ne sono venuto a capo buttando tutto giù e riscrivendolo in modo differente:

    codice:
    var temp = '<table style="box-shadow: 15px 20px 5px rgba(0, 0, 0, 0.37);width:100%;"><tr class="tabella"><th>Data</th><th>Cliente</th><th>Tipologia di lavoro</th><th>Ore stimate</th><th>Stato</th></tr>';    for (var i = 0; i < data.length; i++) {
    		temp = temp + "<tr> <td>" + data[i].dataCompito + "</td> <td>" + data[i].cliente + "</td> <td>" + data[i].tipologia_lavoro + "</td> <td>" + data[i].ore_stimate + "</td> <td>" + data[i].stato + "</td> </tr>";
                                            }
    	   $('#txtHint').html(temp + "</table>");
    Grazie mille per il supporto

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 © 2021 vBulletin Solutions, Inc. All rights reserved.