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

    Problema con richiamo funzione da button

    Ciao a tutti, ho un form che punta alla pagina apposita per la modifica dei dati nel DB.
    Al caricamento della pagina richiamo una funzione js che richiede un file php che modifica un div nel quale ci viene inserita una select dove l' utente seleziona le voci ed un button richiama con la stessa funzione js di prima, il file php che elimina le righe nel DB e rimodifica il div con la nuova select contenente i dati aggiornati della tabella nella quale ha appena cancellato dei records.
    Viene quindi fuori una cosa di questo genere:

    codice HTML:
    <form action="modifica.php" method="post">
    ...vari campi per la modifica dei dati nel DB
    
    <div id="myajax">
       In questo div all' onload, con ajax, ci metto la select ed il 
          <button onclick="ajaxRequest("elimina_records.php");">
    <div/>
    
    <input type="submit">
    </form>
    In pratica vorrei che all' onclick del button mi richiamasse la funzione ajaxRequest() (che funziona all' onload ma non all' onclick del button) che richiama il file elimina_records.php che modifica il <div id="myajax"> inserendoci la nuova select ma non lo fa. Aiuto

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Vediamo anche la chiamata onload....
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Vediamo anche la chiamata onload....
    Si scusa, praticamente passo alla funzione 2 parametri:

    codice HTML:
    <body onLoad="ajaxRequest(<?php print $_GET["id"];?>, 'jobs_of_sow.php?id=')">
    questa è la parte js che viene inclusa:
    codice:
    function xmlhttp()
      {     
           var xmlhttp;        
             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()          
             {  
             //Simbolo di attesa          
               var caricamento="<img src='../../image/loading.gif' height='40px'>"            
               document.getElementById("myDiv").innerHTML=caricamento;                     
               if (xmlhttp.readyState==4 && xmlhttp.status==200)            
               {                           
                setTimeout(
                      function()
                          {
                           document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
                         }
                         ,2000
                            );                       
                 }          
      
          }
          return xmlhttp;
      } 
      function ajaxRequest(value, file)
      {   
        xmlhttp = xmlhttp();  
        var PHPpage = file + value;
        if(value != '')
          {
         xmlhttp.open("GET", PHPpage, true);        
        
         xmlhttp.send();
          } 
          
      }
    Quindi poi nel button richiamo la stessa funzione :

    codice:
    <button onclick="ajaxRequest('', 'elimina.php');">
    ma non da segni di vita a differenza di quando faccio l' onload che funziona alla perfezione. Grazie Andrea

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    codice:
    <body onLoad="ajaxRequest( 'jobs_of_sow.php?id=<?php print $_GET["id"];?>')">
    <button onclick="ajaxRequest('elimina.php');">
    function ajaxRequest(page)
      {   
        xmlhttp = xmlhttp();  
            xmlhttp.open("GET", page, true);        
        
         xmlhttp.send();
          
      }
    se non funziona posta un link alla pagina demo pubblica
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Funziona solo l' onLoad...ma può essere perchè il button viene creato con la richiesta asincrona fatta nell' onload? In effetti se se guardo il sorgente il button non c' è...non posso fartelo vedere online perchè ci lavoro in locale

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ci sono gli spazi free (vedi altervista) dato che dovrebbe funzione non so che dirti verifica che non ci siano dei conflitti
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Ho riesumato un vecchio account di altervista, ho simulato la situazione locale levando la parte del database per vedere meglio il codice e fa la stessa cosa:

    sow_update.php
    codice HTML:
    <html>
     <head> 
      <script type="text/javascript" src="./functions.js"></script>
     </head>
       <body onLoad="ajaxRequest( 'jobs_of_sow.php?id=<?php print $_GET["id"];?>')">
       
       <!--Qui vengono caricate le select (ma carica solo all' onload)-->
       <div id="myDiv" style="text-align:center;"></div> 
       </body>
    </html>
    che richiama jobs_of_sow.php
    codice HTML:
    <select name="id_jobs[]" multiple="">
     <option value="valore1">name1</option>
     <option value="valore2">name2</option>
    </select>
    <input type="button" name="delete_jobs_input" value="Elimina" onclick="ajaxRequest('delete_jobs.php');" size="10" id="sow_submit_input">
    che ha il button che richiama delete_jobs.php (ma non lo fa)
    codice HTML:
    <select name="id_jobs[]" multiple=""> 
     <option value="valore1">Select aggiornata</option>
    </select>
    <button value="questa è la parte che aggiorna la select">
    Ho inserito un alert() nella funzione js, la funzione viene richiamata con successo, sia all' onload che dal button, sembrerebbe proprio il button che non passa il parametro alla funzione che quindi non carica delete_jobs.php.

    La cosa la si può vedere a questo link.
    Grazie 1000
    Ultima modifica di camionistaxcaso; 12-05-2015 a 10:25

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    TypeError: xmlhttp is not a function http://guidalander.altervista.org/test/functions.js Line 38 non chiamare funzione e variabile uguale, e per i test usa un browser che abbia firebug (vedi firefox o chrome)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    xmlhttp1 = xmlhttp();
    un po di inventiva, se dai lo stesso nome alle variabili e alle funzioni è molto probabile che avrai dei conflitti come in questo caso.

    edit: anticipato! non mi ero accorto della risposta, bravo Andrea
    Ultima modifica di Vindav; 12-05-2015 a 17:52

  10. #10
    Grazie ragazzi siete fantastici come sempre Js non lo uso mai, già con php cono una capra, potete quindi immaginare

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.