Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: Inviare array con ajax

  1. #1
    Utente di HTML.it L'avatar di newlink
    Registrato dal
    Oct 2011
    Messaggi
    206

    Inviare array con ajax

    Ciao a tutti, ho necessità di inviare tramite ajax una variabile array ad un file php. Se utilizzo questo script:

    codice:
       $.ajax({
        type: "POST",
        url: "action.php",
        data: "id="+value,
        success: function(risul)
        {
         alert("pippo");
        }
       });
    Dove value è la mia variabile array devo utilizzare qualche accorgimento particolare in javascript o in php?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    Poco comprensibile e vago, vedi se questo http://api.jquery.com/jQuery.getJSON/ può esserti d'aiuto
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di newlink
    Registrato dal
    Oct 2011
    Messaggi
    206
    Non riesco a capire bene le informazioni presenti in questa pagina. Puoi dirmi che informazioni ho omesso?

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    Ad esempio value com'è strutturato? D'altronde è difficile dare indicazioni su come e/o cosa devi fare se tu stesso hai dei dubbi o sei vago, tu solo puoi sapere cosa devi fare e devi cercare di spiegarlo in maniera semplice e chiara
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it L'avatar di newlink
    Registrato dal
    Oct 2011
    Messaggi
    206
    Value contine il value di alcuni checkbox ed è caricato in questo modo:

    codice:
    function action_checkbox(session_userid, action)
     {
      var inputs = document.getElementsByTagName('input')
      var checkboxes = new Array()
      var value = new Array()
      var contatore = 0
    
      for(var i=0; i<inputs.length; i++)
      {
       if(inputs.item(i).getAttribute('type') == 'checkbox')
       {
        checkboxes.push(inputs.item(i))
       }
      }
      
      for(var i=0; i<checkboxes.length; i++)
      {
       if(checkboxes[i].checked)
       {
        value[i] = checkboxes[i].value;
        contatore++
       }
      }
      
      if(action == "delete")
      {
       $.ajax({
        type: "POST",
        url: "action.php",
        data: "id="+value,
        success: function(risul)
        {
         alert("pippo");
        }
       });
      }
     }

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,134
    Scusa ma ne so come prima, e l'output dei dati è?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it L'avatar di newlink
    Registrato dal
    Oct 2011
    Messaggi
    206
    In una pagina php devo prelevare questo array dividerlo e fare operazioni nel db usando il value come riferimento. Non ho ancora creato questo pagina

  8. #8
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Piccola nota tecnica. Se le checkbox sono meno di trentatre questo è un tipico caso in cui ti conviene usare una bitmask a 32 bit (il risultato sarà che ti troverai a inviare un unico numero compreso tra -2147483648 e 2147483647 invece che un array). Magari da' una guardata qua:

    https://developer.mozilla.org/en/Jav...s_and_bitmasks

  9. #9
    Ciao, ho sempre mandato array ad una pagina php tramite ajax usando il formato json.
    Dopo nel file php gestisco usando json_decode().
    Ciao.

  10. #10
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da sergioDario
    Ciao, ho sempre mandato array ad una pagina php tramite ajax usando il formato json.
    Dopo nel file php gestisco usando json_decode().
    Ciao.
    Certo, mica non si può. È solo uno spreco di dati... questo è quello che intendo:

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <script type="text/javascript">
    function ottieniArray () {
    	var tuoArray = [], aChkBoxes = document.querySelectorAll("input[type=checkbox]");
    	for (var nItem = 0; nItem < aChkBoxes.length; tuoArray.push(aChkBoxes[nItem++].checked));
    	return tuoArray.join(", ");
    }
    
    function ottieniBitmask () {
    	var nBitmask = 0, aChkBoxes = document.querySelectorAll("input[type=checkbox]");
    	for (var nItem = 0; nItem < aChkBoxes.length; nBitmask |= aChkBoxes[nItem].checked << nItem++);
    	return nBitmask;
    }
    
    function aggiorna () {
    	var nBitmask = ottieniBitmask();
    	document.getElementById("arrayDisplay").innerHTML = ottieniArray();
    	document.getElementById("bitmaskDisplay").innerHTML = nBitmask;
    	document.getElementById("sixthChBDisplay").innerHTML = nBitmask &amp; 1 << 5 ? "S&amp;igrave;" : "No";
    }
    
    </script>
    </head>
    <body onload="aggiorna();">
    <form name="tuoForm">
    
    
    <input type="checkbox" onchange="aggiorna();" name="chb1" />
    <input type="checkbox" onchange="aggiorna();" name="chb2" />
    <input type="checkbox" onchange="aggiorna();" name="chb3" />
    <input type="checkbox" onchange="aggiorna();" name="chb4" />
    <input type="checkbox" onchange="aggiorna();" name="chb5" />
    <input type="checkbox" onchange="aggiorna();" name="chb6" />
    <input type="checkbox" onchange="aggiorna();" name="chb7" />
    <input type="checkbox" onchange="aggiorna();" name="chb8" />
    <input type="checkbox" onchange="aggiorna();" name="chb9" />
    <input type="checkbox" onchange="aggiorna();" name="chb10" />
    <input type="checkbox" onchange="aggiorna();" name="chb11" />
    <input type="checkbox" onchange="aggiorna();" name="chb12" />
    <input type="checkbox" onchange="aggiorna();" name="chb13" /></p>
    </form>
    <h3>Risultati</h3>
    <ul>[*]Array: [<span id="arrayDisplay"></span>],[*]Bitmask: <span id="bitmaskDisplay"></span>,[*]Controlla la sesta checkbox tramite bitmask&amp;hellip;: &amp;egrave; selezionata? <span id="sixthChBDisplay"></span>.
    <ul>
    
    </body>
    </html>
    Sia il prolisso array che quel microscopico numero contengono la stessa quantità di informazione.

    P.S. Il link che ho postato contiene una guida esaustiva sull'argomento.

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.