Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Prendere dati con post tramite javascript

    Salve, ho fatto una chiamata ajax, e questa volta al posto di utilizzare il classico GET, ho bisogno di usare POST.
    Ho cambiato il metodo della chiamata in POST, ma non riesco a capire come definire la variabile:

    codice:
    var valori = location.hash.substring(1).split('&');
    function prendi_valore_hash(key){ 
           for(i in valori) if(valori[i].split('=')[0]==key) return valori[i].split('=')[1];  
           return false; 
    }
    var pro = 'esempio='+prendi_valore_hash('esempio');
    Questo è il codice che uso normalmente per vaiabili GET, ma quando mi trovo una variabile post come devo fare?


  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Le variabili post non esistono essendo un invio "lato server" il client invia il form e basta, sempre che abbia capito cosa intendi dato che la spiegazione non è chiarissima.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3

    Re: Prendere dati con post tramite javascript

    Originariamente inviato da _Marco_87

    Questo è il codice che uso normalmente per vaiabili GET, ma quando mi trovo una variabile post come devo fare?

    i dati post li invii tramite un form, non tramite la querystring..
    Questa volta, più che un voto.. è favoreggiamento.

  4. #4
    Grazie per la spiegazione.
    Comunque nella navigazione ajax ho sempre usato le variabili get per "muovermi".
    Ho fatto un form per i dati e funziona, la navigazione avviene senza problemi e i dati vengono passati via post:
    codice:
    var esempio= $("#esempio").val();
    .......
    data: "esempio=" + esempio,
    Adesso ho solo un piccolo problema, perchè vorrei togliere il tasto submit(potrei mettere un evento onclick sul codice javascript in sostituzione del submit), e vorrei sostituire uno dei campI:
    codice:
    <input type="image" name="esempio" id="esempio" value="3">
    In uno contenente un simbolo, ad esempio: "&#x2654;", che rappresenta il rebianco degli scacchi (anche se non c'entra nulla con quello che stò facendo, il simbolo è solo indicativo), pur mantenendo un valore di invio pari a 3.
    In definitiva come faccio a far apparire un immagine, che poi assume un valore pari a 3?

  5. #5
    Originariamente inviato da _Marco_87
    Adesso ho solo un piccolo problema, perchè vorrei togliere il tasto submit(potrei mettere un evento onclick sul codice javascript in sostituzione del submit), e vorrei sostituire uno dei campI:
    codice:
    <input type="image" name="esempio" id="esempio" value="3">
    In uno contenente un simbolo, ad esempio: "&#x2654;", che rappresenta il rebianco degli scacchi (anche se non c'entra nulla con quello che stò facendo, il simbolo è solo indicativo), pur mantenendo un valore di invio pari a 3.
    In definitiva come faccio a far apparire un immagine, che poi assume un valore pari a 3?
    invece di togliere il submit, se vuoi gestire l'invio tramite js devi usare e.preventDefault() sul tasto così non hai l'invio della pagina verso alla "action" del form.

    la seconda parte non si capisce
    Questa volta, più che un voto.. è favoreggiamento.

  6. #6
    Grazie per la risposta:
    1)Per quanto riguarda laprima parte adesso ci provo;
    2)Per la seconda parte eccoti un esempio:
    codice:
    <input type="image" src="../immagini/gif.jpg" name="esempio" id="esempio" value="3">
    Così ho un'immagine che all'invio della form ha come valore 3; vorrei sostituire l'immagine con un carattere speciale di html, quindi dovrei levare 'src="..."', ma poi non sò come fare per vedere il simbolo creato con caratteri speciali.

  7. #7
    nn capisco dove vuoi arrivare
    Questa volta, più che un voto.. è favoreggiamento.

  8. #8
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Un esempio funzionante vale più di mille parole&hellip;

    index.html:

    codice:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Sending forms with FormData &ndash; MDN</title>
    <script type="text/javascript">
    "use strict";
    
    function ajaxSuccess () {
    	alert(this.responseText);
    }
    
    function AJAXSubmit (oFormElement) {
    	if (!oFormElement.action) { return; }
    
    	var
    
    		oField, sFieldType, nFile, oReq = new XMLHttpRequest(), sSearch = "",
    		sMethod = oFormElement.method.toUpperCase(), bIsPost = sMethod === "POST";
    
    	oReq.onload = ajaxSuccess;
    	for (var nItem = 0; nItem < oFormElement.elements.length; nItem++) {
    		oField = oFormElement.elements[nItem];
    		if (!oField.hasAttribute("name")) { continue; }
    		sFieldType = oField.nodeName.toUpperCase() === "INPUT" ? oField.getAttribute("type").toUpperCase() : "TEXT";
    		if (sFieldType === "FILE") {
    			for (nFile = 0; nFile < oField.files.length; sSearch += "&" + escape(oField.name) + "=" + escape(oField.files[nFile++].name));
    		} else if ((sFieldType !== "RADIO" && sFieldType !== "CHECKBOX") || oField.checked) {
    			sSearch += "&" + escape(oField.name) + "=" + escape(oField.value);
    		}
    	}
    	oReq.open(sMethod, bIsPost ? oFormElement.action : oFormElement.action.replace(/(?:\?.*)?$/, sSearch.replace(/^&/, "?")), true);
            bIsPost && oReq.setRequestHeader("Content-Type", "application\/x-www-form-urlencoded");
    	oReq.send(bIsPost ? sSearch.replace(/^&/, "") : null);
    }
    </script>
    </head>
    <body>
    
    <h1>Sending forms with FormData</h1>
    
    <form action="register.php" method="post" onsubmit="AJAXSubmit(this); return false;">
    	<fieldset>
    		<legend>Registration example</legend>
    		
    
    
    			First name: <input type="text" name="firstname" />
    
    			Last name: <input type="text" name="lastname" />
    		</p>
    		
    
    
    			<input type="submit" value="Submit" />
    		</p>
    	</fieldset>
    </form>
    
    </body>
    </html>
    register.php:

    Codice PHP:
    <?php

      
    /* register.php */

      
    header("Content-type: text/plain");

      echo 
    ":: data received via GET ::\n\n";
      
    print_r($_GET);

      echo 
    "\n\n:: Data received via POST ::\n\n";
      
    print_r($_POST);

      echo 
    "\n\n:: Data received as \"raw\" (text/plain encoding) ::\n\n";
      if (isset(
    $HTTP_RAW_POST_DATA)) { echo $HTTP_RAW_POST_DATA; }

      echo 
    "\n\n:: Files received ::\n\n";
      
    print_r($_FILES);

    ?>
    Se devi uploadare file le cose si complicano enormemente e ti rimando a questa guida
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  9. #9
    Grazie per le risposte, ma ci siamo allontanati dal problema.
    Il problema non è che non riesco ad inviare i dati tramite POST, ma che al posto di visualizzare il 'value=""' vorre ivisualizzare un'altro carattere.
    Ho risolto così:
    codice:
    <form name="esempio">
    	<input type="hidden" name="esempio" id="esempio" value="prova">
    	<input type="button" id="invia" STYLE="border:0px;" value="&#x2654">
    </form>
    In questo modo si vede solo un carattere speciale html, ma viene inviato il valore nascoto "prova", tramite javascript che prende il campo "esempio" da inviare.
    Così questo problema è risolto (anche se vorrei togliere il rettangolo tipico del bottone, e lasciare solo l'immagine, e questo non sò come si faccia..).

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