Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    371

    Undefined campo di Array

    salve raga ho ancora bisogno del vostro supporto ricordandovi che sono alle prime armi
    Codice PHP:
    if(empty($variabile)){$sql "SELECT * FROM mytable";$result mysql_query($sql);$array = array(); while($row mysql_fetch_array($result)) {        $array[] = $row;     }        echo json_encode($array);} 
    il codice che vedete sopra funziona correttamente, se non per quando trova i campi vuoti che passati a questo Json
    Codice PHP:
    $.getJSON("miofile.php", function(result){        $.each(result, function(iitem){            $('table[name="tb_mytable"]').append(                "<tr><td>"item.Id +                "</td><td>" item.Tel +                "</td><td>"item.Cognome +                "</td><td>" item.Nome +                                  "</td></tr>")            } 
    scrive sullo schermo "UNDEFINED"
    1° domanda come e dove evitare questa variabile vuota....
    2° domanda come metodo di acquisizione dati e di scrittura vi sembra corretto o fareste in maniera diversa??? (come)
    Premesso che come avrete capito parliamo bootstrap con jquery, php e db mysql.
    Avete qualche consiglio da darmi, o qualcosa su cui fare attenzione ???
    Grazie infinite

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,691
    Ciao

    1 bisognerebbe capire chi genera il valore undefined, se PHP o JavaScript. A quel punto sarà possibile determinare dove è meglio intervenire.

    In sostanza, è il PHP che genera delle stringhe con valore undefined? Cioè, cosa salta fuori se richiami direttamente miofile.php senza passare per JavaScript? Puoi postare uno stralcio dell'output PHP?

    Se invece dipende da JavaScript, è presumibile che sia dovuto all'inesistenza di quelle specifiche proprietà dell'oggetto item (che quindi non vengono proprio generate nel json restituito da PHP), per le quali appunto viene restituito, da JavaScript, il valore undefined.

    In tal caso si potrebbe risolvere andando a stampare una stringa vuota qualora una data proprietà risultasse non definita.

    Potrebbe bastare una cosa di questo tipo:
    codice:
    "<tr><td>"+ (item.Id || '' ) +
    "</td><td>" + (item.Tel || '' ) +
    "</td><td>"+ (item.Cognome || '' ) +
    "</td><td>" + (item.Nome || '' ) +
    "</td></tr>"

    2 non conoscendo il contesto ed essendo io ignorante in materia bootstrap, ti direi che può andare bene. Magari qualcun altro sa consigliarti meglio.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    371
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Ciao

    1 bisognerebbe capire chi genera il valore undefined, se PHP o JavaScript. A quel punto sarà possibile determinare dove è meglio intervenire.

    In sostanza, è il PHP che genera delle stringhe con valore undefined? Cioè, cosa salta fuori se richiami direttamente miofile.php senza passare per JavaScript? Puoi postare uno stralcio dell'output PHP?

    Se invece dipende da JavaScript, è presumibile che sia dovuto all'inesistenza di quelle specifiche proprietà dell'oggetto item (che quindi non vengono proprio generate nel json restituito da PHP), per le quali appunto viene restituito, da JavaScript, il valore undefined.

    In tal caso si potrebbe risolvere andando a stampare una stringa vuota qualora una data proprietà risultasse non definita.

    Potrebbe bastare una cosa di questo tipo:
    codice:
    "<tr><td>"+ (item.Id || '' ) +
    "</td><td>" + (item.Tel || '' ) +
    "</td><td>"+ (item.Cognome || '' ) +
    "</td><td>" + (item.Nome || '' ) +
    "</td></tr>"

    2 non conoscendo il contesto ed essendo io ignorante in materia bootstrap, ti direi che può andare bene. Magari qualcun altro sa consigliarti meglio.


    {"0":"1","Id":"1","1":"Maxim","UserName":"Maxim"," 2":"lolbus","Passw":"miapassw","3":null,"Foto":nul l,"4":......................}]
    mi esce questo array....ove vedi NULL è il campo del db vuoto .....
    cmq si risolto come detto tu sopra...grazie 1000

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,691
    Ok ma giusto per precisare, il valore null (specificato esplicitamente in quel modo) è un'altra questione leggermente differente dal valore undefined che invece verrebbe generato per il fatto che mancano, a quanto mi sembra, proprio quelle proprietà che stai interpellando in JavaScript (cioè Tel, Cognome e Nome, che non vedo in quello stralcio JSON) come appunto ho supposto.

    C'è da dire comunque che in entrambe i casi vale l'approccio che ti ho indicato (come tu stesso hai constatato).

    Cioè, che il valore sia esplicitamente impostato come null (e quindi visto esattamente come null anche in JavaScript, dopo la conversione da stringa JSON ad oggetto vero e proprio) oppure che la proprietà non esista (generando quindi un valore undefined), entrambi questi valori equivalgono al valore false; per cui nell'espressione (item.QualcheProprieta || '') il primo membro a sinistra dell'operatore || (OR logico) viene "saltato" (quando equivale a false) e di conseguenza viene eseguito il secondo membro (la stringa vuota).

    cmq si risolto come detto tu sopra...grazie 1000
    Prego, buon proseguimento
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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 © 2024 vBulletin Solutions, Inc. All rights reserved.