Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Ritornare dati da PHP a JS con Ajax

    Ciao, sto realizzando una piccola applicazione Ajax.

    Il funzionamento consiste nell'attivare questa applicazione tramite un pulsante, istanziare l'oggetto xmlhttp, ricevere dal server dei valori numerici e stamparli in un grafico ( diagramma a torta), che si aggiorna in modo asincrono.

    Il mio problema consiste nell'inserire i dati nel grafico perchè da PHP mi ritornano in un formato che non accetta. (il grafico è con la libreria jscharts )

    E' giusto che ritorni il vettore numeri di risposta dal file php dentro xmlHttp.responseText con un ciclo così strutturato echo("valore[i]"); oppure è meglio fare un return del vettore es. return $valori; ?


    Se voi avete un'altra idea oppure qualche consiglio sono molto ben accetti.

    Grazie Davide

  2. #2
    Io la vedo così:
    Codice PHP:
    // il tuo codice php riempie per esempio un array  $valori ...
    // ora facciamo l'echo:
    echo implode(",",$valori); 
    in javascript avrai il responseText che contiene la fila di valori separati da virgola...

    codice:
    var str = xmlHttp.responseText;
    var mioArray = str.split(",");
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  3. #3
    Grazie, ma il problema rimane perchè quando faccio l'input nel grafico mi da sempre formato sbagliato per l'input.

    La cosa strana è che il probema è solo con i valori che ritornano dal server. Se invece di ritornare 25 dal server, dichiarassi subito var VALORE=25; e la inserissi nel grafico non ci sarebbe problema.

  4. #4
    Originariamente inviato da didoproject
    Grazie, ma il problema rimane perchè quando faccio l'input nel grafico mi da sempre formato sbagliato per l'input.
    Vedere ...
    Posta la parte di codice in cui fai l'input nel grafico ...

    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  5. #5
    function handleStateChange() {
    if(xmlHttp.readyState == 4){
    if(xmlHttp.status == 200){

    var returned=xmlHttp.responseText;
    var valori=returned.split(",");

    //INPUT VALORI
    var myData = new Array(['IE7', valori[0] ], ['IE6', valori[1]], ['Firefox', valori[2]]);


    //OPZIONI GRAFICO

    var colors = ['#0673B8', '#0091F1', '#F85900', '#1CC2E6', '#C32121'];
    var myChart = new JSChart('grafico', 'pie');
    myChart.setDataArray(myData);
    myChart.colorizePie(colors);
    myChart.setTitle('');
    myChart.setTitleColor('#8E8E8E');
    myChart.setTitleFontSize(11);
    myChart.setTextPaddingTop(280);
    myChart.setPieValuesDecimals(1);
    myChart.setPieUnitsFontSize(9);
    myChart.setPieValuesFontSize(8);
    myChart.setPieValuesColor('#fff');
    myChart.setPieUnitsColor('#969696');
    myChart.setSize(616, 321);
    myChart.setPiePosition(308, 145);
    myChart.setPieRadius(95);
    myChart.setFlagColor('#fff');
    myChart.setFlagRadius(4);
    ùmyChart.setTooltipOpacity(1);
    myChart.setTooltipBackground('#ddf');
    myChart.setTooltipPosition('ne');
    myChart.setTooltipOffset(2);
    myChart.setBackgroundImage('chart_bg.jpg');
    myChart.draw();

    } } }


    se invece avessi fatto come input quello che ho scritto prima quindi:


    //INPUT VALORI
    var valori=new array(25,25,50);

    var myData = new Array(['IE7', valori[0] ], ['IE6', valori[1]], ['Firefox', valori[2]]);
    l'input sarebbe stato accettato

  6. #6
    Se come hai detto, l'input sarebbe stato accettato, allora la libreria js che usi discerne fra stringhe e numeri e si arrabbia se passi stringhe, quindi:
    codice:
    var myData = new Array(['IE7', parseInt(valori[0]) ], ['IE6', parseInt(valori[1])], ['Firefox', parseInt(valori[2])]);
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  7. #7
    MAGNIFICO! FUNZIONA! veramente non so come ringraziarti!!!! Grazie ancora!

  8. #8
    Quando si puo', si fa ...
    ciao!

    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

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.