Comunidad de diseño web y desarrollo en internet online

Recorrer Array con jQuery al añadir fila tabla

Citar            
MensajeEscrito el 18 Ene 2013 09:51 am
Buenas!!

veréis, la historia viene de largo, y he probado varias cosas, pero para resumir os diré que tengo una tabla con una fila, y al pulsar un botón, mediante jQuery va agregando más filas.

El problema viene porque un campo de la fila es una consulta PHP a la base de datos y muestra un <select> con todas las opciones. Al insertar la consulta PHP dentro del javascript directamente deja de funcionar la utilidad, y al darle al botón no hace nada.

Esta mañana se me ha ocurrido lo siguiente:
Hago la consulta PHP al cargar la página, y guardo todos los resultados en un Array. Luego mediante un script Javascript recojo los datos del Array PHP y lo paso a un Array de Javascript.

Todo con la idea de recorrer el Array al insertar la fila, en lugar de recorrer con PHP o hacer una consulta SQL... pero el resultado es el mismo, nada de nada.

Os detallo, utilizo la librería jQuery.js, y entiendo que sí estoy usando AJAX ya que cuando pulso el botón se añaden correctamente las filas.

El problema es el que comentas, que el PHP no se ejecuta (aunque he probado a poner un "echo" y se muestra), pero es que ni si quiera me recorre un array de javascript.

Aquí realizo la consulta y almaceno datos de la base de datos en variable PHP local:

$consulta = "SELECT CREF FROM articulo ORDER BY CREF";
$resultado = mysql_query($consulta, $conexion) or die(mysql_error());

$ArrayArticulos=array();
$i=0;
while($fila = mysql_fetch_array($resultado))
{

$ArrayArticulos[$i] = $fila['CREF'];
$i++;

}

?>

Después, con este script, paso el array de PHP a Javascript:

<script>
var x = new Array();

<?php
for($i = 0;$i<count($ArrayArticulos);$i++)
echo "\nx[$i] = '$ArrayArticulos[$i];";
?>

</script>

Finalmente ejecuto la llamada de jquey.js para aplicar AJAX, y creo la función que añadirá algunas filas y en el primer campo cargará el array, cosa que no hace:

<script src="jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
//Aquí la función

$("#add").click(function(){
var n = $('tr:last td', $("#tablatareas")).length;
var tds = '<tr>';
for(var i=0; i<n; i++){
tds += '<td>
<select name="Articulo">
'for (var j=0;j<5;j++)
{'
<option value=x[j]</option>;
'}'
</select> </td>';
tds += '<td><input type="text" name="horamax id="horamax" /> </td>';
tds += '<td></td>';
tds += '<td><?php echo "Hi again!" ?></td>';
}
tds += '</tr>';
$("#tablatareas").append(tds);
})


});
</script>


Gracias!

Por superx335

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ene 2013 06:27 pm
No me parece buena idea mezclar php con javascript, es mejor si trabajas cada uno por aparte, lo que yo hago y hasta ahora siempre me ha funcionado, es meter todo el php con sus respectivas consultas en un archivo aparte, después con javascript hago una petición via ajax a dicho archivo enviándole ciertos parámetros para que me devuelva solo la información que necesito, ya sea en formato xml o json y por ultimo recojo esos datos y los inserto en el documento utilizando un template.

Por HtrMancera

Claber

342 de clabLevel

1 tutorial

Genero:Masculino  

Front-end Developer

chrome
Citar            
MensajeEscrito el 21 Ene 2013 08:54 am
Buenas HtrMancera,

¿Te importaría ilustrarme con un ejemplillo? Siento mi torpeza, entiendo que te refieres a guardar un fichero php con funciones y llamarlas desde JS, pero no sé hacer esto y con un ejemplo sencillo seguro que podría verlo más claro.

Muchas gracias por responder, un saludo!

Por superx335

13 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.