Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    50

    PAssare form dati con jquey e aprire xls php

    Ciao a tutti!
    ho una pagina html con form pieno di input. Quando clicco sul pulsante "APRI XLS" viene richiamata una finzione javascript che esegue una chiamata jquery alla pagina "pagina_xls.php" che dopo aver elaborato i dati crea una tabella.

    1) pulsante "APRI_XLS":
    onclick="javascript:call($('#form_dati').serialize (),'pagina_xls.php');"

    2)chiamata ajax
    $.ajax({
    type: "GET",
    url: url,
    data: variabili,
    dataType: "html",
    success: function(response){
    window.open('pagina_xls.php'); <---- ERRORE

    });

    3)file pagina_xls.php


    Il problema è i parametri che passo non vengono letti. Questo perchè per aprire l'xls in una nuova pagina "window.open('pagina_xls.php')" non gli passo nulla quindi annullo la chiama ajax..

    Come posso quindi passare i dati del mio form e aprire l'excel? essendo molti parametri ha senso passarli nell'url direttamente? in questo caso c'è modo di passare l'intero form??
    grazie mille!!!

  2. #2
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <script type="text/javascript">
    function popupSend (oForm) {
    	var sGet = "", aFields = oForm.elements;
    	for (var oField, nItem = 0; nItem < aFields.length; nItem++) {
    		oField = aFields[nItem];
    		if (!oField.hasAttribute("name") || ((oField.type === "checkbox" || oField.type === "radio") && !oField.checked)) { continue; }
    		sGet += "&" + escape(oField.getAttribute("name")) + "=" + escape(oField.value);
    	}
    	open(sGet ? oForm.action + "?" + sGet.slice(1) : oForm.action, "tuaPagina", "resizable=yes,scrollbars=yes,status=yes");
    }
    </script>
    
    </head>
     
    <body>
    
    <form name="tuoForm" action="pagina_xls.php" method="get">
    	
    
    First name: <input type="text" name="firstname" />
    
    	Last name: <input type="text" name="lastname" />
    
    	Password: <input type="password" name="pwd" />
    
    	<input type="radio" name="sex" value="male" /> Male <input type="radio" name="sex" value="female" /> Female</p>
    	
    
    <input type="checkbox" name="vehicle" value="Bike" />I have a bike
    
    	<input type="checkbox" name="vehicle" value="Car" />I have a car</p>
    	
    
    <input type="submit" value="Submit" /> <input type="button" value="Nuova finestra" onclick="popupSend(this.form);" /></p>
    </form>
    
    </body>
    </html>
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  3. #3

    Re: PAssare form dati con jquey e aprire xls php

    Originariamente inviato da fpj
    Ciao a tutti!
    ho una pagina html con form pieno di input. Quando clicco sul pulsante "APRI XLS" viene richiamata una finzione javascript che esegue una chiamata jquery alla pagina "pagina_xls.php" che dopo aver elaborato i dati crea una tabella.

    1) pulsante "APRI_XLS":
    onclick="javascript:call($('#form_dati').serialize (),'pagina_xls.php');"

    2)chiamata ajax
    $.ajax({
    type: "GET",
    url: url,
    data: variabili,
    dataType: "html",
    success: function(response){
    window.open('pagina_xls.php'); <---- ERRORE

    });

    3)file pagina_xls.php


    Il problema è i parametri che passo non vengono letti. Questo perchè per aprire l'xls in una nuova pagina "window.open('pagina_xls.php')" non gli passo nulla quindi annullo la chiama ajax..

    Come posso quindi passare i dati del mio form e aprire l'excel? essendo molti parametri ha senso passarli nell'url direttamente? in questo caso c'è modo di passare l'intero form??
    grazie mille!!!
    Non serve javascript, basta indicare un target blank nel form per aprire una nuova finestra.
    Generalmente è preferibile usare il metodo post se i dati sono molti o per la "pulizia" dell'url. ($_POST["nomeInput"])
    codice:
    <form action="pagina_xls.php" target="_blank" method="post">
    
    
    
    <input type="submit" value="APRI XLS">
    </form>
    Ciao

  4. #4
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da lucavizzi
    Non serve javascript, basta indicare un target blank nel form per aprire una nuova finestra.
    target="_blank" apre una nuova scheda, non finestra&hellip;
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  5. #5

  6. #6
    Originariamente inviato da carlomarx
    target="_blank" apre una nuova scheda, non finestra&hellip;
    Dipende dalle impostazioni e dal browser, Firefox di default apre i _blank in una nuova scheda, Explorer apre una nuova finestra.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    50
    @seokey ho avuto tempo solo di provare quella di @carlomarx e mi funzionava ma lunedì che torno al mio pc provo anche quella di @lucavizzi.

    Comunque anche se funziona (quindi grazie mille)non è proprio quello che mi serviva. Io avrei bisogno che quando clio sul pulsante "apri xls" mi compaia sotto una gif_loading (per questo avevo usato una chiamata ajax) che scompaia al termne dell'elaborazioen con magari u testo "finito" ad esempio. Appena mi finisce l'elaborazione invece dovrebbe comparire il classico popup per Aprire o Salvare il file xls prodotto.

    Invece con la soluzione di @carlomarx e quella di @lucavizzi presumo, non riesco a inserire una gif di ricerca nel frattempo e, inoltre, mi si apre subito una finestra bianca e al termine dell'elaborazione mi compare il popup per salvare l'xls.

    Any solutions?

    Grazie intanto ragazzi

  8. #8
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Ok. Ti butto giù un canovaccio di come dovrà venir fuori:

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <script type="text/javascript">
    function changeImage (sURL) {
    	// Uso l'immagine come sfondo del form solo per farti capire... Tu facci quello che ti pare!
    	document.tuoForm.style.backgroundImage = "url(" + sURL + ")";
    }
    
    function AJAXSuccess () {
    	// dovrai sostituire quest'alert con l'apertura del popup...
    	alert(this.responseText);
    	changeImage("successo.gif");
    }
    
    function AJAXError (oError) {
    	changeImage("errore.gif");
    }
    
    function AJAXGet (oForm) {
    	var sGet = "", aFields = oForm.elements, oReq = new XMLHttpRequest();
    	for (var oField, nItem = 0; nItem < aFields.length; nItem++) {
    		oField = aFields[nItem];
    		if (!oField.hasAttribute("name") || ((oField.type === "checkbox" || oField.type === "radio") && !oField.checked)) { continue; }
    		sGet += "&" + escape(oField.getAttribute("name")) + "=" + escape(oField.value);
    	}
    	oReq.onload = AJAXSuccess;
    	oReq.onerror = AJAXError;
    	changeImage("attesa.gif");
    	oReq.open("get", sGet ? oForm.action + "?" + sGet.slice(1) : oForm.action, true);
    	oReq.send(null);
    }
    </script>
    
    </head>
     
    <body>
    
    <form onsubmit="return AJAXGet(this), false;" name="tuoForm" action="pagina_xls.php" method="get">
    	
    
    First name: <input type="text" name="firstname" />
    
    	Last name: <input type="text" name="lastname" />
    
    	Password: <input type="password" name="pwd" />
    
    	<input type="radio" name="sex" value="male" /> Male <input type="radio" name="sex" value="female" /> Female</p>
    	
    
    <input type="checkbox" name="vehicle" value="Bike" />I have a bike
    
    	<input type="checkbox" name="vehicle" value="Car" />I have a car</p>
    	
    
    <input type="submit" value="Submit" /></p>
    </form>
    
    </body>
    </html>
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    50
    Allora ho provato quanto scritto da @lucavizzi non risolve il mio problema. L'ultimo suggerimento di @carlomarx è molto interessante, è il concetto che avevo in mente con jquery, ma mi dà errore sul metodo "hasAttribute". Mi dice che non è supportato dall'oggetto. Non ho ancora capito perchè.

    Comunque mi stavo chiedende se tutto ciò non riuscivo a farlo con una chiamata jquery e a mettere il response in modo tale da aprire il popup per il salvataggio dell'xls...

    ho provato a mettere il response in window.open(response) ma nada...

    L'unica idea che mi viene in mente, anche se è come sparare con un cannone un moscerino, è fare una call jquery e salvare il risultato in un array php da mettere come variabile di sessione e successivamentre aprire la pagina che contiene il codice che costruisce la tabella xls nel quale vado a prendere la struttura salvata prima... mmmm

    se avete suggerimenti grazie mille!

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Boh... a me funziona http://webandylab.altervista.org/testsalvaxls.html (testato solo su Firefox)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.