Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    JQuery ajax - cosa diventa la risposta json ?

    Domanda 1: forse stupida...
    in Jquery quando si scrive per una chiamata ajax:
    codice:
    ....
    success: function(data) {
    ...
    la variabile data deve essere chiamata solo data o posso chiamarla tizio, tavolo.. etc ?

    Domanda 2:
    Una chiamata javascript produce un'interrogazione su un database tramite javascript.
    Il risultato dell'interrogazione del database è un array di 3 elementi che a loro volta sono array.
    Viene tradotto tramite la funzione json_encode e produce il seguente risultato:

    codice:
    [{"copieCodice":"2"},{"idPersona":"2","nome":"nome 2"},{"idPersona":"4","nome":"nome 4"}]
    la funzione che riceve i dati li inserisce nella variabile "data" ma la variabile data cos'è per javascript ? Un array e quindi accedo al primo (quello che contiene "copieCodice") con $data[0] ?
    Come faccio a prendere il valore del primo idPersona (quello che ha valore 2) ?
    Ultima modifica di W Thunderbird; 06-03-2015 a 15:28

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    1) puoi chiamarla come ti pare
    2) è un array di oggetti, per recuperare idPersona: data[1].idPersona


  3. #3
    Ti ringrazio per la risposta... la prima domanda lo so che era stupida..
    Per la seconda, ora ho più o meno capito come javascript rappresenta quei dati.
    Sono stato tratto in inganno dal fatto che in jQuery si può scrivere:
    data[1].idPersona oppure data[1].["idPersona"] come se fosse un indice di un array.

    Ora ho un problema conoscere il numero di elementi che contengono gli oggetti (poichè possono variare):
    data.length -> restituisce 3 OK, ho 3 oggetti all'interno di data
    però poi scrivo:
    data[1].lenght ->restituisce undefined .. male! Come faccio a sapere quanti "elementi" ha all'interno quell'oggetto ?
    Ultima modifica di W Thunderbird; 06-03-2015 a 16:37

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,132
    data[1].lenght inverti ht data[1].length
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    data[1].lenght inverti ht data[1].length
    Hahaha.. che errore ! No, quello mi è sfuggito digitando qui..
    E' che proprio non funziona la proprietà .length sull'array di oggetti data[1]... pare che javascript non riesca a contare gli elementi negli array con indice formato da una stringa !
    Ultima modifica di W Thunderbird; 06-03-2015 a 17:00

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,132
    ma data è una array bidimensionale?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Bella domanda.. dovrebbe in parte esserlo.
    data è l'array che si produce dando in pasto a jQuery questo array json:
    codice:
    [{"copieCodice":"2"},{"idPersona":"2","nome":"nome 2"},{"idPersona":"4","nome":"nome 4"}]
    data[1] dovrebbe essere bidimensionale perchè contiene due elementi.. con indice "idPersona" e "nome"..

  8. #8
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,749
    Ciao, capisco le tue perplessità, il fatto è che in JavaScript non esistono gli array associativi (come invece esistono per altri linguaggi di programmazione). L'argomento è ampiamente dibattuto. In JavaScript abbiamo semplicemente degli oggetti. Un oggetto non possiede la proprietà length come la possiede invece un array (che in JavaScript è comunque un oggetto)

    Se fai qualche ricerca puoi trovare diverse soluzioni per risolvere il problema.

    Una soluzione stringata è data dall'utilizzo della funzione keys() che, sostanzialmente, restituisce un array da un oggetto, e quindi sarà possibile usare la proprietà length:

    Object.keys(data[1]).length;

    In tal caso vecchi browser non supportano tale funzione.

    Una soluzione più classica

    var size = 0;
    for (var key in data[1]) {
    size++;
    }
    alert(size);
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  9. #9
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,749
    PS: la situazione di instabilità del forum sta diventando abbastanza irritante.

    Giusto per sapere se ti si può consigliare qualcos'altro, a cosa ti serve sapere la dimensione degli oggetti?
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  10. #10
    Il codice php estrae tramite un codice da più tabelle di anagrafica delle righe. Queste righe hanno colonne diverse.
    Sapere il numero di elementi mi serve poi a stabilire il massimo per sapere quante colonne avrà la tabella all'interno della quale andranno rappresentate.
    In pratica:
    il risultato è un array con elemento copieCodice (indica gli elementi con codice uguale).
    poi c'è una riga per ogni anagrafica che ha "codice" uguale però i risultati posso essere diversi del tipo:
    codice:
    array(idPersona => 2, nome => nome2, ruolo=>membro)
    array(idPersona => 5, nome => nome5, ruolo=>staff, incarichi =>test,  rapporti finali )
    Nel caso del secondo array ha una colonna in più.. e io devo saperlo perchè per mettere tutto in una tabella devo sapere di quante colonne farla.

    Il tutto poi va inserito in una finestra "modale".. ma questo è un altra storia che non ho ancora guardato.

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.