Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340

    Array php, come leggere in javascript

    Salve a tutti,
    sto cercando di leggere in JS ( con cui lavoro proprio poco) un array scritto da una funzione PHP.

    una tabella elenca i fogli codificati, in corrispondenza di ogniuno chiamo la funzione r_fogli.
    codice:
        $(document).on('click', '.r_fogli', function(e) {
                        e.preventDefault();
        
                        var rowCells = $(this).closest("tr").children(); 
                        var firstCell = rowCells.eq( 0 ).text(); 
                        var secondCell = rowCells.eq( 1 ).text(); 
                        $('#salva').show(); 
                        $('#id').val(firstCell);
                        $('#act').val('update');
           
                        $.ajax({
                            type : "GET",
                            url: "<?php echo site_url('app/read_fogli');?>",
                            data: "id=" + firstCell + "&param=des",
                            dataType : "html",
                            success  : function(msg)
                               {
                                    alert(msg);
                               },
                                    error: function() { alert("Ho qualche problema nella chiamata, si prega di riprovare..."); }
                        });
     
         
        });
    // questa è la funzione read_fogli
    L'array in questione e' il solito, scritto cosi':
    Codice PHP:
      $result $query $this->db->get()->result();        //  tramite ID ottengo il record da leggere
      
       
    if($result){
               
            foreach (
    $result as $key)
                {
                     
    $data = array(
                           
    "id"      =>$key->id,
                           
    "des"     =>$key->descrizione,
                           
    "costo"   =>$key->costo_lastra,
                           
    "prezzo"  =>$key->prezzo_lastra,
                           
    "perc"    =>$key->perc
                     
    );
                    
    print_r($data);           
                    return;
                }; 
    l'alert mi evidenzia in msg il contenuto
    Array
    (
    [id] => 5
    [des] => A3
    [costo] => 7.000
    [prezzo] => 14.000
    [perc] => 0.00
    )

    La mia richiesta nasce da qui, devo poter mettere nell' input id="des" il valore A3, nell'input id="costo" il valore 7,000 etc...
    Qualcuno che mi possa dare una mano ?

    grazie.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Hai provato banalmente ad attuare una serializzazione JSON?
    Il quesito riguarda maggiormente PHP che JavaScript...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340
    alka, grazie per la risposta, in realtà avevo provato già la strada di JSON ma il problema è sempre poi come trattare in risposta.
    Mi spiego meglio : se in php ho una array che mi risponde cosi :
    Array
    (
    [id] => 5
    [des] => A3
    [costo] => 7.000
    [prezzo] => 14.000
    [perc] => 0.00
    )
    in JSON mi arriva la risposta con la classica struttura, cosi :
    {
    "id": "5",
    "des": "A3 ",
    "costo": "7.000",
    "prezzo": "14.000",
    "perc": "0.00"
    }
    Ma non mi sposta il mio problema, come devo fare poi in jscript per mettere in $('des').val(); il valore dato in risposta.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Quote Originariamente inviata da marcopa Visualizza il messaggio
    Ma non mi sposta il mio problema, come devo fare poi in jscript per mettere in $('des').val(); il valore dato in risposta.
    Non so cosa è l'elemento "des", tuttavia se usi val() do per scontato che si tratti di un campo di input, e pertanto andando ad assegnargli un valore dovrai comunque "trattare" la struttura dati che ricevi - qualunque essa sia - per identificare quel singolo e specifico valore che devi mettere nel campo, essendo che non puoi metterci dentro un array.

    Il server ti restituisce un array, tu devi assegnare un valore: qual è il valore dell'array o di uno dei suoi oggetti che deve finire nel campo?

    Se si tratta della descrizione, ossia la proprietà "des" dell'oggetto o degli oggetti che ti vengono restituitioì, è sufficiente estrarre dalla struttura ricevuta l'elemento che ti interessa e accedere alla suddetta proprietà per estrarne il valore da assegnare al controllo.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340
    Alka grazie, mi sono incasinato la vita e la soluzione era mooooolto più semplice di come la stavo pensando.
    Risolto.

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Quote Originariamente inviata da marcopa Visualizza il messaggio
    Alka grazie, mi sono incasinato la vita e la soluzione era mooooolto più semplice di come la stavo pensando.
    Risolto.
    Sarebbe interessante sapere come, anche solo per dare un senso alla discussione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340
    Quote Originariamente inviata da alka Visualizza il messaggio
    Sarebbe interessante sapere come, anche solo per dare un senso alla discussione.
    Certamente, nella risposta di $Ajax dovevo semplicemente splittare la stringa di ritorno, in questo modo :
    codice:
                      data = result.split(",");
                                    $('#id').val(data[0]);
                                    $('#des').val(data[1]);
                                    $('#distributore').val(data[2]);
                                    $('#cartiera').val(data[3]);
                                    $('#spessore').val(data[4]);
                                    $('#categoria').val(data[5]);
                                    $('#umis').val(data[6]);
                                    $('#costo').val(data[7]);
    in questo moodo ho prelevato dal DB il record ed ho popolato gli input interessati.
    Grazie per la dritta che mi hai dato.

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