Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16
  1. #11
    fra9494 ho provato la tua porzione di codice e facendo parecchie modifiche sono riuscito a far passare dei parametri. Grazie!
    Volevo però tener conto del codice di cavicchiandrea perchè mi sembra di capire che è il metodo più utilizzato.
    Se provo a trasferire il tuo file nella cartella www di wamp per far andare il tutto (insieme a file che funzionano già correttamente) il risultato è questo:

    il form compare e reagisce bene agli eventi del mouse ma non invia i dati alla pagina ins.php.
    il codice è quello fatto da te cambiando solo il nome della pagina php infatti la porzione:

    codice:
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    è posiziona subito prima dei vari script, è questa che include jquery o no?
    il browser non mi da alcun errore, ma non passa il controllo alla pagina ins.php

    se modifico la textbox poi resta e non scompare più, quindi potrebbe essere che passa alla pagina ins.php e si blocca, anche se non penso poichè il browser non va sulla pagina ins.php (e su questa non cè nessun redirect ma solo le echo delle variabili ricevute).

  2. #12
    domani comunque faccio altre prove partendo da operazioni con jquery più semplici rispetto a questa..

  3. #13
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    se wamp simula un webserver non sviluppando in locale non saprei cosa consigliare e tanto meno soluzioni, dici che il browser non da errori ma monitorizzi il tutto dalla console di firebug? Vedi le chiamate ajax? Puoi pubblicare la pagina?

    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #14
    Ho lavorato ancora sulla tua pagina.
    Si il browser non da errori e come detto dopo aver tentato di modificare la text box questa resta attiva e non scompare e non richiama la pagina php
    Il codice è quello fatto fa te: (tralascio i style)

    codice:
    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>form fidelity</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script type="text/javascript">
    function cambia(campo,valore,riga){
            var id = campo.split("_")[1];
            var nomecampo = campo.split("_")[0];
            $("#"+campo).removeAttr("onclick").html('<input type="text" name="'+nomecampo+'" class="input"  id="'+nomecampo+'"  value="'+valore+'" onblur="AggiornaDato(this.name,\''+valore+'\','+id+','+riga+')" >')
            $("#"+nomecampo).select()    
        
    }
    function AggiornaDato(nome_input,valore,record,riga){
        
        var dati = nome_input+"="+$("#"+nome_input).val()+"&id="+record+"&row="+riga;
        if(valore!=$("#"+nome_input).val()){
        $.post("aaa.php",dati,function(responseText){
            $("#risposta").html(responseText).fadeIn(300).delay(5000).fadeOut(200)
            $("#"+nome_input+"_"+record).attr("onclick","cambia(this.id,this.innerHTML,"+riga+")").html($("#"+nome_input).val())
            })
        }else{
            $("#"+nome_input+"_"+record).attr("onclick","cambia(this.id,this.innerHTML,"+riga+")").html($("#"+nome_input).val())
            }
        }
    </script>
    
    
    
    
    </head>
    
    
    <body>
    <div id="form">
    <form><table width="100%" border="0" id="lista" cellspacing="2" cellpadding="0">
    <tr>
        <th scope="col" width="25%">Tessera</th>
        <th scope="col" width="25%">Nome</th>
        <th scope="col" width="25%">Data</th>
        <th scope="col" width="25%">Punti</th>
      </tr>
      <tr><td height="25px" id="tessera_1" onclick="cambia(this.id,this.innerHTML,1)">565756789</td><td id="nome_1" onclick="cambia(this.id,this.innerHTML,1)">Andrea</td><td id="data_1" onclick="cambia(this.id,this.innerHTML,1)">2014-05-10</td><td id="punti_1" onclick="cambia(this.id,this.innerHTML,1)">20</td></tr><tr><td height="25px" id="tessera_2" onclick="cambia(this.id,this.innerHTML,2)">987654321</td><td id="nome_2" onclick="cambia(this.id,this.innerHTML,2)">Gino</td><td id="data_2" onclick="cambia(this.id,this.innerHTML,2)">2014-05-08</td><td id="punti_2" onclick="cambia(this.id,this.innerHTML,2)">55</td></tr>
      </table></form></div>
      <div id="risposta">ADDDDDDDDDDDDDDDDDDDDDDDAA</div>
    
    
    </body>
    </html>
    Mentre la pagina php aaa.php è praticamente vuota:

    codice:
    <?php
    
    
        if(isset($_POST["row"])){ 
     
          $row=trim($_POST["row"]);                
          echo " Row: $row<br>";      
          
        }       
    ?>
    Tuttavia Da chrome attivando la console javascript mi da il seguente errore:

    XMLHttpRequest cannot load file://.../aaa.php. Received an invalid response. Origin 'null' is therefore not allowed access.

    Ho provato ad avviare chrome con consenso all'accesso ai file locali con comando:
    chrome.exe --allow-file-access-from-files
    ma niente..
    il problema si verifica dentro la funzione AggiornaDato() che si blocca probabilmente per questione di permessi.
    Faccio ancora un po di prove.

  5. #15
    sono riuscito a far andare un esempio finalmente, dopo vi faccio sapere!

  6. #16
    partendo da una chiamata ajax semplice (non che questa sia tanto complicata! ) e modificando pian piano risolvendo i dubbi sono arrivato a questa versione definitiva della funzione Aggiornadato()
    che passa il controllo a cambia.php che esegue dei calcoli e poi ritorna alla pagina senza aggiornare (che bello! ) e mette sulla cella in questione il nuovo valore inserito dall'utente!


    codice:
          function AggiornaDato(input,id,nomecampo){    
          
            var input = $("#"+input).val();
    
    
                              $.ajax({         
                                url: "cambia.php", 
                                type: "POST",
                                data: { input : input, id : id, nomecampo : nomecampo},
                                dataType: "text",                        
                                // restituisce la risposta del nostro script se la nostra richiesta Ajax avrà esito positivo
                                success:function(data) {
                                    $("#"+nomecampo+"_"+id).html(input);  
                                },
                                // restituisce, in caso di richiesta errata, il messaggio di errore riscontrato durante la richiesta ajax
                                error:function(jqXHR, textStatus) {
                                    alert( "Request failed: " + textStatus );
                                }
                              });                          
          }
    grazie a cavicchiandrea e fra9494!

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