Foros del Web » Programando para Internet » Javascript »

Pasar una variable de PHP a una variable JAVASCRIPT

Estas en el tema de Pasar una variable de PHP a una variable JAVASCRIPT en el foro de Javascript en Foros del Web. Buen Dia, estoy realizando un proyecto y me tope con el siguiente problema: tengo un archivo PHP que me contruye una variable con esta estructura: ...
  #1 (permalink)  
Antiguo 09/10/2013, 05:20
 
Fecha de Ingreso: octubre-2013
Mensajes: 8
Antigüedad: 10 años, 6 meses
Puntos: 0
Pasar una variable de PHP a una variable JAVASCRIPT

Buen Dia,

estoy realizando un proyecto y me tope con el siguiente problema: tengo un archivo PHP que me contruye una variable con esta estructura:

[{source: "Marina_Shopping", target: "Funchal", type: "Is_In"},{source: "Marina_Shopping", target: "Avenida_do_Mar", type: "Is_Accessible_From"},{source: "Marina_Shopping", target: "Avenida_Arriaga", type: "Is_Accessible_From"},]

el objetivo es pasar esa estructura desde ese archivo PHP, hasta otro HTML que en si contiene codigo JAVASCRIPT para contruime la visualizacion que quiero. estoy usando la biblioteca D3.js, que me crea una visualizacion basada en esa estructura.

parte del codigo jascript es asi:


<script type="text/javascript">

var links = //AQUI ES DONDE DEVE RECIBIR LA VARIABLE PHP


var nodes = {};

// Compute the distinct nodes from the links.
links.forEach(function(link) {
link.source = nodes[link.source] || (nodes[link.source] = {name: link.source});
link.target = nodes[link.target] || (nodes[link.target] = {name: link.target});
});

var w = 1500;
h = 800;

var force = d3.layout.force()
.nodes(d3.values(nodes))
.links(links)
.size([w, h])
.linkDistance(250) //tamanho de las lineas
.charge(-1800) //organizacion de las lineas
.on("tick", tick)
.start();

//.......
</script>


ya intente varias formas de hacerlo pero no me ha funcionado. espero que me consigan ayudar porque realmente estoy lo estoy necesitado!!

Gracias de antemano.
  #2 (permalink)  
Antiguo 09/10/2013, 06:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Pasar una variable de PHP a una variable JAVASCRIPT

No puedes imprimir cosas de PHP en un archivo con extensión .html, la idea es que uses archivos .php para que sean pre-procesados en el servidor y solo se envié el html resultante.

Una vez que lo hagas en un archivo PHP, es algo trivial, solamente imprimes tu variable:
Código PHP:
Ver original
  1. <script type="text/javascript">
  2.  
  3. var links = <?php echo $variablequetieneelcodigojs; ?>;

Saludos.
  #3 (permalink)  
Antiguo 09/10/2013, 07:26
 
Fecha de Ingreso: octubre-2013
Mensajes: 8
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Pasar una variable de PHP a una variable JAVASCRIPT

Cita:
Iniciado por GatorV Ver Mensaje
No puedes imprimir cosas de PHP en un archivo con extensión .html, la idea es que uses archivos .php para que sean pre-procesados en el servidor y solo se envié el html resultante.

Una vez que lo hagas en un archivo PHP, es algo trivial, solamente imprimes tu variable:
Código PHP:
Ver original
  1. <script type="text/javascript">
  2.  
  3. var links = <?php echo $variablequetieneelcodigojs; ?>;

Saludos.

Buen dia,

Primeramente gracias por ayudarme. Esta forma de imprimir la variable ya la he intentado varias veces sin resultado. Que tendria que hacer en el archivo PHP? para que me resulte. Disculpa es que no tengo mucha experiencia.
  #4 (permalink)  
Antiguo 09/10/2013, 15:11
 
Fecha de Ingreso: enero-2012
Ubicación: en Ecatepec
Mensajes: 102
Antigüedad: 12 años, 4 meses
Puntos: 3
Respuesta: Pasar una variable de PHP a una variable JAVASCRIPT

tal vez no te de resultado si no tienes un servidor local para probar, prueba en el servidor online
__________________
mi motor de busqueda no es google, sino la necesidad del Amor de Dios

www.CreacionDePaginasdeInternet.com
  #5 (permalink)  
Antiguo 09/10/2013, 15:18
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 10 meses
Puntos: 95
Respuesta: Pasar una variable de PHP a una variable JAVASCRIPT

No te compliques la vida y utiliza AJAX.

OBviamente tu estructura es JSON, por lo que Javascript la soporta nativamente. Lo unico que tienes que hacer es decirle a Javascript de donde leerla.

si creas una pagina en PHP que regrese esa estructura solamente y ponga los encabezados para JSON, usando jQuery lo unico que tienes que hacer es:

Código Javascript:
Ver original
  1. $.ajax({
  2.       url: "tuScript.php"
  3.       }).done(function(datos) {
  4.           console.log(datos.source, datos.target, datos.type);
  5.        });
  #6 (permalink)  
Antiguo 10/10/2013, 14:12
 
Fecha de Ingreso: octubre-2013
Mensajes: 8
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Pasar una variable de PHP a una variable JAVASCRIPT

Cita:
Iniciado por AlanChavez Ver Mensaje
No te compliques la vida y utiliza AJAX.

OBviamente tu estructura es JSON, por lo que Javascript la soporta nativamente. Lo unico que tienes que hacer es decirle a Javascript de donde leerla.

si creas una pagina en PHP que regrese esa estructura solamente y ponga los encabezados para JSON, usando jQuery lo unico que tienes que hacer es:

Código Javascript:
Ver original
  1. $.ajax({
  2.       url: "tuScript.php"
  3.       }).done(function(datos) {
  4.           console.log(datos.source, datos.target, datos.type);
  5.        });


Gracias por tu consejo..

efectivamente ya encontre una forma de enviar la variable a javascript usando AJAX, ahora mi nuevo problema surge cuando voy a usar la variable en javascript, me aparece un error diciendo:

Uncaught TypeError: Object [{source: "Marina_Shopping", target: "Funchal", type: "Is_In"},{source: "Marina_Shopping", target: "Avenida_do_Mar", type: "Is_Accessible_From"},{source: "Marina_Shopping", target: "Avenida_Arriaga", type: "Is_Accessible_From"},]


has no method 'forEach'.

tienes alguna sugestion para mi nuevo problema? gracias de antemano
  #7 (permalink)  
Antiguo 10/10/2013, 14:58
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 13 años, 10 meses
Puntos: 95
Respuesta: Pasar una variable de PHP a una variable JAVASCRIPT

El método forEach solamente esta definido para Arrays y funciones derivadas de Arrays.

Tendrias que poner el snippet de codigo que te devuelve ese error.
  #8 (permalink)  
Antiguo 10/10/2013, 15:01
 
Fecha de Ingreso: octubre-2013
Mensajes: 8
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Pasar una variable de PHP a una variable JAVASCRIPT

Cita:
Iniciado por AlanChavez Ver Mensaje
El método forEach solamente esta definido para Arrays y funciones derivadas de Arrays.

Tendrias que poner el snippet de codigo que te devuelve ese error.


<script type="text/javascript">


var resultado;

function captura (){



$.ajax({
async: false,
type : 'POST',
url : 'teste1.php',
data : {objid:88},
success : function (response) {

resultado=response;

}

});

return resultado;
}


var response = captura();

//alert(response);
//var links = jQuery.parseJSON(response);

var links = captura();



var nodes = {};

// Compute the distinct nodes from the links.
links.forEach(function(link) {
link.source = nodes[link.source] || (nodes[link.source] = {name: link.source});
link.target = nodes[link.target] || (nodes[link.target] = {name: link.target});
});

var w = 1500;
h = 800;

var force = d3.layout.force()
.nodes(d3.values(nodes))
.links(links)
.size([w, h])
.linkDistance(250) //tamanho de las lineas
.charge(-1800) //organizacion de las lineas
.on("tick", tick)
.start();

var svg = d3.select("body").append("svg:svg")
.attr("width", w)
.attr("height", h);


// Per-type markers, as they don't inherit styles.
svg.append("svg:defs").selectAll("marker")
.data(["IsNext", "IsIn", "resolved", "IsAccessibleFrom"])
.enter().append("svg:marker")
.attr("id", String)
.attr("viewBox", "0 -5 15 20")
.attr("refX", 60)
.attr("refY", -5)
.attr("markerWidth", 8) //tamanho dos marcadores (puntadores de las flechas)
.attr("markerHeight", 8)
.attr("orient", "auto")
.append("svg:path")
.attr("d", "M0,-5L10,0L0,8");

var path = svg.append("svg:g").selectAll("path")
.data(force.links())
.enter().append("svg:path")
.attr("class", function(d) { return "link " + d.type; })
.attr("marker-end", function(d) { return "url(#" + d.type + ")"; });

var circle = svg.append("svg:g").selectAll("ellipse")
.data(force.nodes())
.enter().append("svg:ellipse")
.attr("rx", 70) //tamanho das elipses
.attr("ry", 35)
.call(force.drag);

var text = svg.append("svg:g").selectAll("g")
.data(force.nodes())
.enter().append("svg:g");

// A copy of the text with a thick white stroke for legibility.

text.append("svg:text")
.attr("x", 8)
.attr("y", ".31em")
.attr("class", "labels")
.attr("text-anchor", "middle")
.text(function(d) { return d.name; });



// Use elliptical arc path segments to doubly-encode directionality.
function tick() {
path.attr("d", function(d) {
var dx = d.target.x - d.source.x,
dy = d.target.y - d.source.y,
dr = Math.sqrt(dx * dx + dy * dy);
return "M" + d.source.x + "," + d.source.y + "A" + dr + "," + dr + " 0 0,1 " + d.target.x + "," + d.target.y;
});

circle.attr("transform", function(d) {
return "translate(" + d.x + "," + d.y + ")";
});

text.attr("transform", function(d) {
return "translate(" + d.x + "," + d.y + ")";
});
}

</script>


este es el codigo que estoy utilizando...

Etiquetas: html, php, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:21.