[RISOLTO] - Passare array da php a javascript

di il
17 risposte

[RISOLTO] - Passare array da php a javascript

Ciao a tutti,

vi pongo una questione per la quale sto praticamente impazzendo.

Sto tentando di passare dei dati in due <select>. La seconda select dovrebbe popolarsi in base ai dati della prima.

Per prima cosa io effettuo una select su mysql, quindi:
$sqlquery ="SELECT DISTINCT nome, numero_ordine  FROM nome_tabella";

$result = mysql_query($sqlquery);
$result2 = mysql_query($sqlquery);
$concatena_dati = array();
while ($temp=mysql_fetch_array($result, MYSQL_ASSOC))
{
  
  $concatena_dati[$temp['nome']][]=$temp['numero_ordine'];
  
}
Dopodiché dovrei passare i dati in questo script js:
<script>var catAndActs = {};
var catAndActs =  <?php echo json_encode($concatena_dati); ?>;

}
function ChangecatList() {
    var catList = document.getElementById("validationCustom03");
    var actList = document.getElementById("validationCustom04");
    var selCat = catList.options[catList.selectedIndex].value;
    while (actList.options.length) {
        actList.remove(0);
    }
    var cats = catAndActs[selCat];
    if (cats) {
        var i;
        for (i = 0; i < cats.length; i++) {
            var cat = new Option(cats[i], i);
            actList.options.add(cat);
        }
    }
} </script>
I dati dovrei averli in questo formato:
catAndActs['nome1'] = ['numero_ordine1', 'numero_ordine2']
catAndActs['nome2'] = ['numero_ordine1', 'numero_ordine2']

(anche stampati così all'interno dello script andrebbe bene, ma proprio non ci riesco )

Per caso qualcuno riesce ad instradarmi correttamente?

Grazie mille

17 Risposte

  • Re: [RISOLTO] - Passare array da php a javascript

    Namaste! ha scritto:


    Sto tentando di passare dei dati in due <select>. La seconda select dovrebbe popolarsi in base ai dati della prima.
    Dove hai gestito il cambio dei dati nella seconda lista in base al variare della prima?
    Qual è il problema specifico o l'errore che riscontri?
  • Re: [RISOLTO] - Passare array da php a javascript

    Praticamente ho queste due select:
    
    <div class="row">
                            <div class="col-md-6">
                              <div class="form-group row">
                          <label class="col-sm-3 col-form-label" for="validationCustom03"> Nome cliente </label>
                          <div class="col-sm-9">
                            <select class="form-control select2-hidden-accessible" required="" name="nome" id="validationCustom03" onchange="ChangecatList()" data-select2-id="validationCustom03" tabindex="-1" aria-hidden="true">
    
    
                              <option value="" data-select2-id="2"> Seleziona un nome</option>
                              <option value="Nome1">Nome1</option>
                              <option value="Nome2">Nome2</option>
                              
                            </select>
                            </div>
                            <div class="col-md-6 ">
                              <div class="form-group row">
                                <label class="col-sm-3 col-form-label" for="validationCustom04">numero ordine</label>
                                <div class="col-sm-9">
                                  <select class="js-example-basic-single form-control select2-hidden-accessible" required="" name="numero_ordine" id="validationCustom04" data-select2-id="validationCustom04" tabindex="-1" aria-hidden="true">
                                   
                                  </select>
    
                                </div>
                              </div>
                            </div>
                          </div>
    
    Se inserisco manualmente i dati nello script, in questo formato (proprio manualmente):

    catAndActs['nome1'] = ['numero_ordine1', 'numero_ordine2']
    catAndActs['nome2'] = ['numero_ordine1', 'numero_ordine2']

    Il tutto funziona. Se utilizzo quanto scritto sopra in php/js, la prima select si popola (giustamente, visto che i dati sono statici per il momento), la seconda resta vuota al variare del dato nella prima select
  • Re: [RISOLTO] - Passare array da php a javascript

    Namaste! ha scritto:


    Se inserisco manualmente i dati nello script, in questo formato (proprio manualmente):
    [...]
    Il tutto funziona. Se utilizzo quanto scritto sopra in php/js, la prima select si popola (giustamente, visto che i dati sono statici per il momento), la seconda resta vuota al variare del dato nella prima select
    Hai guardato il sorgente della pagina che il server restituisce per vedere cosa ha di diverso rispetto a quella che vai a creare manualmente?
  • Re: [RISOLTO] - Passare array da php a javascript

    Ho provato a stampare l'array in php ed è nel formato corretto dell'array che mi aspetto, ma in js non saprei stamparlo :/
  • Re: [RISOLTO] - Passare array da php a javascript

    Namaste! ha scritto:


    Ho provato a stampare l'array in php ed è nel formato corretto dell'array che mi aspetto, ma in js non saprei stamparlo :/
    Basta che vai nel browser, usi il tasto destro e scegli il comando che ti mostra il sorgente della pagina.
  • Re: [RISOLTO] - Passare array da php a javascript

    Ah, perdonami, non avevo compreso.

    Se vedo il sorgente pagina mi dà questo come risultato:

    <script>
    var catAndActs = {};
    var catAndActs = <?php echo json_encode($concatena_dati); ?>;
    ...

    Praticamente lo stesso codice che ho scritto :/

    La seconda select resta comunque vuota anche se seleziono una valore sulla prima:

    <select class="js-example-basic-single form-control" required name="numero_ordine" id="validationCustom04"></select>.

    Praticamente è come se non mi leggesse i dati di echo in php...
  • Re: [RISOLTO] - Passare array da php a javascript

    Namaste! ha scritto:


    Se vedo il sorgente pagina mi dà questo come risultato:

    <script>
    var catAndActs = {};
    var catAndActs = <?php echo json_encode($concatena_dati); ?>;
    ...

    Praticamente lo stesso codice che ho scritto :/
    Allora direi che hai un problema serio sul server, che non elabora le pagine PHP.
  • Re: [RISOLTO] - Passare array da php a javascript

    Ma è strano, è un hosting Netsons e ci sono diverse pagine sopra che sono scritte in php e che girano correttamente :/

    Probabile (sicuramente) credo che ci sia qualche errore lato mio, ma non riesco a capire cosa
  • Re: [RISOLTO] - Passare array da php a javascript

    Alka ha scritto:



    Allora direi che hai un problema serio sul server, che non elabora le pagine PHP.
    Perdonami, sul tuo server se prendi un array in php e poi la passi in js come ho fatto io:

    var catAndActs = <?php echo json_encode($concatena_dati); ?>;

    che risultato ti dà in codice sorgente?
  • Re: [RISOLTO] - Passare array da php a javascript

    Namaste! ha scritto:


    Ma è strano, è un hosting Netsons e ci sono diverse pagine sopra che sono scritte in php e che girano correttamente :/
    Probabile (sicuramente) credo che ci sia qualche errore lato mio, ma non riesco a capire cosa
    Spero che la pagina abbia estensione PHP come le altre: se è così, non si spiega il motivo per cui questa pagina venga scaricata così, ma solo tu puoi determinarlo direi, altrimenti fornisci qualche altro dettaglio.
  • Re: [RISOLTO] - Passare array da php a javascript

    Sisi, la pagina è .php. Non saprei che ulteriori dettagli fornire :/

    Di base un json_encode in uno script che risultato dovrebbe dare nel codice sorgente? Magari più tardi provo su un hosting diverso
  • Re: [RISOLTO] - Passare array da php a javascript

    Namaste! ha scritto:


    Sisi, la pagina è .php. Non saprei che ulteriori dettagli fornire :/

    Di base un json_encode in uno script che risultato dovrebbe dare nel codice sorgente? Magari più tardi provo su un hosting diverso
    Hai provato - che ne so - a mettere un'altra istruzione PHP?
    Le altre pagine sei sicuro vengano elaborate correttamente? (o che non sia una svista)

    Se il codice PHP non viene eseguito ma restituito "as is", allora quello è senz'altro il primo problema da verificare.

    Ciao!
  • Re: [RISOLTO] - Passare array da php a javascript

    Ho provato ad inserire questo:

    <?php echo "Pippo"; ?> nel codice sorgente mi stampa esattamente <?php echo "Pippo"; ?>
  • Re: [RISOLTO] - Passare array da php a javascript

    File con estensione .php e anche tag apertura e chiusura php e così esce dalla modalità di analisi.
    <?php
    
    $var = 'valore testuale contenuto in una variabile php';
    
    ?>
    <script>
    var catAndActs = '<?php echo 'output php in una variabile Javascript'; ?>';
    </script>
Devi accedere o registrarti per scrivere nel forum
17 risposte