Visualizzazione risultati 1 fino 7 di 7

Discussione: passaggio array php --> js

  1. #1
    Guest

    Predefinito passaggio array php --> js

    salve
    ho un problema con il passaggio di un array da php a javascript

    nel main ho questo codice php che legge dal db un campo stringa e salva i valori in un array

    Codice PHP:
    $myConn = connectClass::connessione();
    $sql = "SELECT * FROM table";
    if (
    $result = $myConn->query($sql)) {
    while (
    $obj = $result->fetch_object()) {
    $i = 0;
    $allSections[$i] = $obj->titolo;
    $i++;
    }
    }
    più giù ho un bottone che onclick richiama una funzione js


    Codice PHP:
    echo "<button type=\"submit\" onclick=\"showEditor('pq',$allSections);\">";
    ma se dalla funzione js provo a stampare l'array
    da come risultato la stringa undefined

    qualcuno sa aiutarmi a risolvere?
    Ultima modifica di stepone : 26-05-2011 alle ore 23.38.47

  2. #2
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    devi definire $i=0 subito prima del ciclo while, correggi con:
    Codice PHP:
    $i=0;
    while (
    $obj = $result->fetch_object()) {
    //$i = 0;
    $allSections[$i] = $obj->titolo;
    $i++;
    }
    in effetti basta che controlli l'array dopo il ciclo while con print_r($allSections);

    correggi anche(button --> input):
    Codice PHP:
    echo "<input type=\"button\" onclick=\"showEditor('pq',$allSections);\">";
    Ultima modifica di EuroSalute : 27-05-2011 alle ore 01.08.47 Motivo: più info...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  3. #3
    Guest

    Predefinito

    ok sulle tue correzioni.
    ma il punto, anche se non ho provato e non posso verificare subito, credo non sia quello perchè:

    1) comunque anche con $i=0 dentro il while
    la variabile che ho definito sarebbe un array di un solo elemento.

    che anche se non è ciò che voglio è un array a tutti gli effetti

    2) il button funziona correttamente, anche in quel modo, e non credo che se la funzione javascript veda l'array come undefined sia colpa di quell'attributo...

    cmq appena possibile verifico

    se intanto ci sono altre idee... benvengano

  4. #4
    Guest

    Predefinito

    Prova a correggere con:

    Codice PHP:
    echo '<input type="button" onclick="showEditor(\'pq\', ' . addslashes($allSections) . ');">';
    Poi se devi restituire un array con un solo dato, oltre a fare cicli inutili, valorizzazione dell'array e tutto, passagli la stringa e modifica leggermente lo script in Javascript, avresti meno rogne.


  5. #5
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    $allSelections è un array, quindi stampando direttamente quella variabile con echo l'unico risultato sarà "Array".

    Invece, dovresti stampare l'array in sintassi javascript cioè: [elemento1,2,3,...].
    json_encode fa al caso tuo; riscrivo il codice con la correzione che ti ha detto di fare EuroSalute, oltre a ciò che ti ho detto io:
    Codice PHP:
    $myConn = connectClass::connessione();
    $sql = "SELECT * FROM table";
    $allSelections = array();

    if(
    $result = $myConn->query($sql)) {
    while (
    $obj = $result->fetch_object()) {
    $allSections[] = $obj->titolo;
    }
    }
    Poi:
    Codice PHP:
    echo '<input type="button" onclick="showEditor(\'pq\',' . json_encode($allSections) . ')">';

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    [...] passagli la stringa e modifica leggermente lo script in Javascript [...]
    Ho specificato di passargli la stringa dando per scontato che fosse il contenuto che va a valorizzare l'array, cioè l'ultimo dato estratto con la query.

  7. #7
    Guest

    Predefinito

    vi ringrazio per le risposte, ma ancora non ho risolto...

    in particolare se uso addslashes il problema resta sempre quello di un array indefinito per la funzione js.

    provando invece la soluzione di javascripter
    si ha un problema a monte:

    la funzione che ho scritto in breve rende un div visibile, e in questo div stampa gli elementi dell'array.
    spezzando con i punti la riga

    Codice:
    echo '<input type="button" onclick="showEditor(\'pq\',' . json_encode($allSections) . ')">';
    si inceppa qualcosa, evidentemente la chiamata alla funzione js va male, tant'è che non compare nemmeno il div


    __________________________________________________ ___________________________________

    edit:

    grazie... ho risolto con qualche modifica sul tema json
    Ultima modifica di stepone : 28-05-2011 alle ore 10.09.27

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •