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

    passare array come parametro funzione

    Ciao a tutti chi mi sa dire come si passa un array come parametro?
    Al posto di primo=1&secondo=2 vorrei passare un array array("primo"=>1, "secondo"=>2)
    codice:
    <form onsubmit=\"ajaxRequest('POST', './billing/ajax_insert_detail.php?', 'myDiv', 'primo=1&secondo=2'); return false;\">
    Grazie

  2. #2
    penso basti creare l'array, e poi passarlo come variabile "normale" (un pò come anche in php).
    poi all'interno della funzione iteri:
    codice:
    var myArray = [....]
    
    function myFunc(params) {
       for(var i = 0; i < params.length; i++){
          // DO STUFF
       }
    }
    
    myFunc(myArray);
    non ho il tempo di testarlo però!

  3. #3
    il mio problema è che l' array non lo posso creare in una funzione, devo passarlo quando richiamo la funzione ajaxRequest() nel tag html. Comunque a pensarci bene forse in quel punto del codice un array js il browser non sa manco cosa sia. Forse bisogna passare per forza una stringa ad una funzione che poi la manipola. Domani ci lavoro e vediamo cosa salta fuori. Per ora grazie
    Ultima modifica di camionistaxcaso; 19-01-2017 a 23:30

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Domande. Perche usare ajax quando si usa una form ? Qual'è il vantaggio ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Quote Originariamente inviata da camionistaxcaso Visualizza il messaggio
    il mio problema è che l' array non lo posso creare in una funzione, devo passarlo quando richiamo la funzione ajaxRequest() nel tag html. Comunque a pensarci bene forse in quel punto del codice un array js il browser non sa manco cosa sia. Forse bisogna passare per forza una stringa ad una funzione che poi la manipola. Domani ci lavoro e vediamo cosa salta fuori. Per ora grazie
    se leggi bene, io non ho detto di crearlo in una funzione.
    lo crei prima, e poi la passi come parametro.
    dentro la funzione ho solo iterato per farti un esempio, non devi usarlo per forza.

  6. #6
    Quote Originariamente inviata da fermat Visualizza il messaggio
    se leggi bene, io non ho detto di crearlo in una funzione.
    lo crei prima, e poi la passi come parametro.
    dentro la funzione ho solo iterato per farti un esempio, non devi usarlo per forza.
    perchè in quel punto sto generando output html con php e non capisco come fare a creare un array js
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Domande. Perche usare ajax quando si usa una form ? Qual'è il vantaggio ?
    perchè vorrei salvare nel db i dati insieriti nel form e sotto caricare la situazione aggiornata del db senza caricare ogni volta la pagina, per renderlo più snello

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova questo. Sono sicuro che ci sono soluzioni migliori.


    codice HTML:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Untitled</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
    <script language="JavaScript" type="text/javascript">
    <!--
    function invia(){
          
          var arr = new Array();
          var elm = document.getElementById("myform").elements.length;
          for (i=0;i<elm;i++) {
           nam    = document.getElementById("myform").elements[i].name;      
            val    = document.getElementById("myform").elements[i].value;
           val    = val.replace(/\"/g,'\\"');
           alert(val);
           arr[i] = '"'+nam+'":"'+val+'"';
          } 
          var xxx = arr.join();
          param = '{'+xxx+'}'; 
                           
          $.ajax({
                 url  : 'test9065b.php',
                 type : 'POST',
                 data : 'param=' + param, 
           dataType : 'html'
               }).done(function(html) {$('#log').html(html)}) ;
    } 
    //-->
    </script>
    </head>
    <body>
    <form method="post" id="myform">
     <input type="text" name="b[1]" /><br />
     <input type="text" name="b[2]" /><br />
     <input type="text" name="b[3]" /><br />
     <input type="text" name="b[4]" /><br />
     <input type="text" name="pippo" /><br /> 
    </form>
    <input type="button" value='Invia' onclick='invia()' />
    <div id='log'></div>
    </body>
    </html>
    file test9065b.php

    Codice PHP:

    <?php 
    $array 
    json_decode($_POST['param'],true);
    foreach (
    $array as $key => $value) {
     print 
    "$key => $value <br/>";
    }
     
    ?>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    grazie badaze ma preferisco evitare jquery
    Ho risolto creando una funzione che passandole una stringa di valori separati da virgola fa l' explode, recupera i valori dal modulo, crea la querystring e la passa alla funzione ajax:

    codice:
    function ajax_post_vars(str_vars){    
    var explode = str_vars.split(",");
    var qstr = "";
        for(i=0;i<explode.length;i++){
            if(i>0)
            {
                qstr = qstr+'&';
            }
            qstr = qstr+explode[i]+'='+document.getElementById(explode[i]).value;
            
        }
    ajaxRequest('POST', './billing/ajax_insert_detail.php?', 'myDiv', qstr);
    }

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.