no se pero podrías evitar conflictos por nombres como poe ejemplo poner esto
Código PHP:
var __v=[];
var __v2=[];
var __dia=[];
de esta manera que aseguras de que únicas como te muestra el ejemplo
cristian_cena
si estas cargando las variables con valores obtenidos por medio de ajax y json o simplemente cargas un nuevo script ,ahi el esta problema ya que este proceso tarda un tiempo en ejecutarse por lo que las funciones dentro de la pagina terminaran de ejecutarse antes de que la petición con los nuevos valores llegue, por lo que tienes que hacer es cargarlas primero,
Código PHP:
<script type="text/javascript">
function loadScript(url, callback){
var script = document.createElement("script");
script.type = "text/javascript";
if (script.readyState){ //IE
script.onreadystatechange = function(){
if (script.readyState == "loaded" ||
script.readyState == "complete"){
script.onreadystatechange = null;
if(typeof callback == "function")
callback();
}
};
} else { //Others
script.onload = function(){
if(typeof callback == "function")
callback();
};
}
script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
}
var v=[];
var v2=[];
var dia=[];
function recibe(name){
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp ( regexS );
var tmpURL = window.location.href;
var results = regex.exec( tmpURL );
if( results == null )
return "";
else
return results[1];
}
function callTheJsonp(fn){
var reci=recibe('periodo');
var url = "http://www.trueware.mx/eduardo/mycommerce/ventadiaria.php?callback=parseRequest&periodo="+reci;
loadScript(url,fn);
}
function parseRequest(response)
{
try
{
console.log(response);
var venta=[];
var prod=[];
var acum=0;
for (var i=0; i < response.length; i++)
{
venta[i] = eval(response[i].venta);
prod[i] = eval(response[i].dia);
acum=acum+venta[i];
}
for(var i=0; i < 32; i++)
{
v[i]=0;
dia[i]=i;
}
for (var i=0; i < prod.length; i++)
{
v[prod[i]]=venta[i];
}
var li = document.createElement("LI");
li.innerHTML = '<font size=2>'+'Venta Total: '+acum+'</font>';
var ul = document.getElementById("contenido");
ul.appendChild(li);
}
catch(an_exception)
{
document.write("Error de Conexion");
}
}
function callTheJsonp2(fn)
{
var reci=recibe('periodo');
var url = "http://www.trueware.mx/eduardo/mycommerce/ventadiaria12.php?callback=parseRequest2&periodo="+reci;
loadScript(url,fn);
}
function parseRequest2(response)
{
try
{
console.log(response);
var venta=[];
var prod=[];
for (var i=0; i < response.length; i++)
{
venta[i] = eval(response[i].venta);
prod[i] = eval(response[i].dia);
}
for(var i=0; i < 32; i++)
{
v2[i]=0;
}
for (var i=0; i < prod.length; i++)
{
v2[prod[i]]=venta[i];
}
}
catch(an_exception)
{
document.write("Error de Conexion");
}
}
function grafica(venta,venta2,dia)
{
var line1 = new RGraph.Line('line1', venta,venta2);
line1.Set('chart.background.grid', true);
line1.Set('chart.linewidth', 5);
line1.Set('chart.gutter.left', 35);
line1.Set('chart.hmargin', 5);
line1.Set('chart.tickmarks', 'circle');
line1.Set('chart.units.post', '$');
line1.Set('chart.colors', ['red', 'green']);
//line1.Set('chart.curvy', 1);
line1.Set('chart.curvy.factor', 0.25);
line1.Set('chart.labels',dia);
line1.Set('chart.background.grid.hlines', false);
line1.Set('chart.background.grid.autofit.numvlines', 11);
line1.Draw();
}
function primero()
{
callTheJsonp(function(){
callTheJsonp2(function(){
alert(v);
alert(v2);
alert(dia);
grafica(v,v2,dia);
});
});
;
}
</script>