Visualizzazione dei risultati da 1 a 2 su 2

Discussione: problema con jqplot

  1. #1

    problema con jqplot

    salve a tutti, sto usando la libreria jqplot per fare grafici per un progetto che sto sviluppando. Succede però una cosa strana su cui sto sbattendo la testa da tre giorni senza venirne a capo
    Praticamente ho questo codice che funziona alla perfezione:
    codice:
    while( $row=$rs1->fetch_assoc() ){
    		$XData=explode(',',$row["position"]);
    		$YData=explode(',',$row["xmirroroffset"]);
    		$chartholder='chartholder1';
    		$jqwidth='100%';$jqheight='600px';
    		require '../jqplot/jqplotholder.php';
    		$jqpxdata='['.implode(',',$XData).']';
    		$jqpydata='['.implode(',',$YData).']';
    		echo("</div>");
    	}
    	
    ?>		
    <link type="text/css" href="../../_inc/js/jquery-ui/css/ui-lightness/jquery-ui-1.8.1.custom.css" rel="stylesheet" />
    
    <link rel="stylesheet" type="text/css" href="../../_inc/js/jqplot/jquery.jqplot.css" />
    <script language="javascript" type="text/javascript" src="../../_inc/js/jqplot/jquery.jqplot.js"></script>
    
    <script language="javascript" type="text/javascript" src="../../_inc/js/jqplot/plugins/jqplot.highlighter.min.js"></script>
     	
    <script type="text/javascript" src="../../_inc/js/jqplot/plugins/jqplot.cursor.min.js"></script>
    <script id="source" language="javascript" type="text/javascript">
    var position=<?php echo("$position"); ?>;
    var xmirroroffset=<?php echo("$xmirroroffset"); ?>;
    var jqpxdata=<?php echo("$jqpxdata"); ?>;
    var jqpydata=<?php echo("$jqpydata"); ?>;
    document.write(jqpxdata);
    document.write(jqpydata);
    var jqpdata=new Array();
    for(i=0;i<jqpxdata.length;i++){
    	jqpdata[i]=new Array();
    	jqpdata[i][0]=jqpxdata[i];
    	jqpdata[i][1]=jqpydata[i];
    }
    var jqdata=new Array(jqpdata);
    //document.write(jqdata[0]);
    $(document).ready(function(){
    	parent.$("#mainFrame").height(2000);
    	$.jqplot.config.enablePlugins = true;
    	
      	$.jqplot('chartholder1',  jqdata,
      		{ 
    			title: 'Titolo1',
    	  		seriesDefaults: {
    		  		markerOptions: {style: 'circle', lineWidth: 2, size: 4}
    		  	},
    	  		axes: {
    				xaxis: {
    					label:'Position [mm]',
    					labelRenderer: $.jqplot.CanvasAxisLabelRenderer
    				},
    		  		yaxis: {
    					label:'X Mirror Offset [nm]',
    					labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
    					tickOptions:{formatString:'%.2f'} 
    				}
    	  		},
    			cursor:{
    				show: true,
    				zoom:true,
    				showTooltip:false
    			} 
    	  	});
    });	
    </script>
    stampa perfettamente il grafico, allora ho pensato di ampliarlo in modo da avere più linee sovrapposte sullo stesso grafico. In fase primordiale (ancora non dovrebbe plottare diverse linee ma giusto per strutturarlo sotto forma di array) ho scritto questo:
    codice:
    while( $row=$rs1->fetch_assoc() ){
    		$XData[$rowcnt]=explode(',',$row["position"]);
    		$YData[$rowcnt]=explode(',',$row["xmirroroffset"]);
    		$chartholder='chartholder1';
    		$jqwidth='100%';$jqheight='600px';
    		
    		//$jqpxdata='['.implode(',',$XData[$rowcnt]).']';
    		//$jqpydata='['.implode(',',$YData[$rowcnt]).']';
    		
    		$rowcnt++;
    	}
    	$jqpxdata="";
    	$jqpydata="";
    	for($i=0;$i<$rowcnt;$i++) {
    		if($i<$rowcnt-1) {
    			$jqpxdata.=implode(',',$XData[$i]).'|';
    			$jqpydata.=implode(',',$YData[$i]).'|';
    		}
    		else {
    			$jqpxdata.=implode(',',$XData[$i]);
    			$jqpydata.=implode(',',$YData[$i]);
    			require '../jqplot/jqplotholder.php';
    			echo("</div>");
    		}
    	}
    ?>		
    <link type="text/css" href="../../_inc/js/jquery-ui/css/ui-lightness/jquery-ui-1.8.1.custom.css" rel="stylesheet" />
    
    <link rel="stylesheet" type="text/css" href="../../_inc/js/jqplot/jquery.jqplot.css" />
    <script language="javascript" type="text/javascript" src="../../_inc/js/jqplot/jquery.jqplot.js"></script>
    
    <script language="javascript" type="text/javascript" src="../../_inc/js/jqplot/plugins/jqplot.highlighter.min.js"></script>
     	
    <script type="text/javascript" src="../../_inc/js/jqplot/plugins/jqplot.cursor.min.js"></script>
    <form ><input id='jqxdat' type='hidden' value='<?php echo($jqpxdata); ?>' /><input id='jqydat' type='hidden' value='<?php echo($jqpydata); ?>' /></form>
    <script id="source" language="javascript" type="text/javascript">
    	var jqpxdatastring=document.getElementById("jqxdat").value;
    	var jqpydatastring=document.getElementById("jqydat").value;
    	var jqpxdata=jqpxdatastring.split("|");
    	var jqpydata=jqpydatastring.split("|");
    
    	var jqpdatax=new Array();
    	var jqpdatay=new Array();
    	jqpdatax=jqpxdatastring.split(',');
    	jqpdatay=jqpydatastring.split(',');
    
    	var jqpdata1=new Array();
    	for(i=0;i<jqpdatax.length;i++){
    		jqpdata1[i]=new Array();
    		jqpdata1[i][0]=jqpdatax[i];
    		jqpdata1[i][1]=jqpdatay[i];
    	}
    	var jqdata=new Array(jqpdata1);	
    	document.write(jqdata[0]);
    
    $(document).ready(function(){
    	parent.$("#mainFrame").height(2000);
    	$.jqplot.config.enablePlugins = true;
    	
      	$.jqplot('chartholder1', jqdata,
      		{ 
    			title: 'Titolo1',
    	  		seriesDefaults: {
    		  		markerOptions: {style: 'circle', lineWidth: 2, size: 4}
    		  	},
    	  		axes: {
    				xaxis: {
    					label:'Position [mm]',
    					labelRenderer: $.jqplot.CanvasAxisLabelRenderer
    				},
    		  		yaxis: {
    					label:'X Mirror Offset [nm]',
    					labelRenderer: $.jqplot.CanvasAxisLabelRenderer,
    					tickOptions:{formatString:'%.2f'} 
    				}
    	  		},
    			cursor:{
    				show: true,
    				zoom:true,
    				showTooltip:false
    			} 
    	  	});
    });	
    </script>
    che facendo delle verifiche produce lo stesso array jqdata del caso precedente, ma non mi stampa il grafico...non capisco qual è l'errore perchè la funzione di stampa del grafico è identica e l'array che gli passo anche solo che nel primo caso funziona, nel secondo no
    Grazie e scusate per il messaggio chilometrico

  2. #2
    giusto per precisare: i campi position e xmirroroffset della tabella del db sono dei campi text in cui sono inseriti una serie di numeri separati da una virgola

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.