Passare array da php a javascript

Namaste!

Nuovo Utente
12 Lug 2022
4
0
1
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:

Codice:
$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:

Codice:
<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
frown.gif
)

Per caso qualcuno riesce ad instradarmi correttamente?

Grazie mille
 
io preferisco avere uno script con all'interno php, html e js,

con php preparo tutte le variabili sia singole che array, poi le passo a js con degli "echo" in modo semplice

esempio,
JavaScript:
$(document).ready(function()
{
        var SPW_Chart       = '<?php echo ( empty($SPW_Chart)       ? ''         : $SPW_Chart );       ?>',
            SPW_ChartInv    = '<?php echo ( empty($SPW_ChartInv)    ? false      : $SPW_ChartInv );    ?>',
            SPW_Title       = '<?php echo ( empty($SPW_Title)       ? 'Title'    : $SPW_Title );       ?>',
            SPW_SubTitle    = '<?php echo ( empty($SPW_SubTitle)    ? 'SubTitle' : $SPW_SubTitle );    ?>',
            SPW_LabelsOnCol = '<?php echo ( empty($SPW_LabelsOnCol) ? false      : $SPW_LabelsOnCol ); ?>',
            SPW_Stacking    = '<?php echo ( empty($SPW_Stacking)    ? false      : $SPW_Stacking );    ?>'

        var SPW_xAxis   = <?php echo json_encode($SPW_xAxis);   ?>;
        var SPW_yAxis   = <?php echo json_encode($SPW_yAxis);   ?>;
        var SPW_ySeries = <?php echo json_encode($SPW_ySeries); ?>;
......

vedi se ti aiuta a risolvere
 
Ultima modifica:
io preferisco avere uno script con all'interno php, html e js,

con php preparo tutte le variabili sia singole che array, poi le passo a js con degli "echo" in modo semplice

esempio,
JavaScript:
$(document).ready(function()
{
        var SPW_Chart       = '<?php echo ( empty($SPW_Chart)       ? ''         : $SPW_Chart );       ?>',
            SPW_ChartInv    = '<?php echo ( empty($SPW_ChartInv)    ? false      : $SPW_ChartInv );    ?>',
            SPW_Title       = '<?php echo ( empty($SPW_Title)       ? 'Title'    : $SPW_Title );       ?>',
            SPW_SubTitle    = '<?php echo ( empty($SPW_SubTitle)    ? 'SubTitle' : $SPW_SubTitle );    ?>',
            SPW_LabelsOnCol = '<?php echo ( empty($SPW_LabelsOnCol) ? false      : $SPW_LabelsOnCol ); ?>',
            SPW_Stacking    = '<?php echo ( empty($SPW_Stacking)    ? false      : $SPW_Stacking );    ?>'

        var SPW_xAxis   = <?php echo json_encode($SPW_xAxis);   ?>;
        var SPW_yAxis   = <?php echo json_encode($SPW_yAxis);   ?>;
        var SPW_ySeries = <?php echo json_encode($SPW_ySeries); ?>;
......

vedi se ti aiuta a risolvere
Hmm, non è la stessa cosa che ho fatto io? Cioè Qui

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

Praticamente ho preparato già l'array $concatena_dati nella fase precedente e poi con echo lo stampo. Il problema è che è come se non lo leggesse :/
 
mi sembra sia la stessa cosa, con un particolare, "preferisco avere uno script con all'interno php, html e js,"
quindi controlla se nell'array $concatena_dati i dati sono presenti, ovvero se l'array é correttamente valorizzata
l'array è correttamente valorizzato :/

Una domanda, se tu inserisci una cosa simile all'interno del tag script:

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

se stampi la pagina, il codice sorgente cosa ti mostra? A me dà proprio questo: var catAndActs = <?php echo json_encode($concatena_dati); ?>; , come se non interpretasse il codice php...cioè, io mi aspetterei una cosa tipo:

var catAndActs = {array passato tramite variabile $concatena_dati}

Grazie
 
Ciao

Una domanda, se tu inserisci una cosa simile all'interno del tag script:
[...]
Se il documento è eseguito correttamente come PHP, dovrebbe stampare il risultato restituito secondo il codice PHP, e non la sintassi del codice sorgente PHP.

In casi del genere, un errore comune, sebbene alquanto banale, può essere dato dal fatto che stai cercando di eseguire il PHP attraverso un file che non ha estensione ".php", magari un file ".html". Chiaramente le consuete impostazioni dei server eseguono il codice PHP solo quando è scritto in un file con estensione ".php"... così come per gli altri linguaggi lato server; ognuno deve essere eseguito attraverso un file con corrispettiva estensione del linguaggio. A meno di non aver impostato diversamente il server, questa è la norma generale.

Controlla che il problema non sia questo.
 

Discussioni simili