Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/01/2013, 03:26
superx335
 
Fecha de Ingreso: marzo-2011
Mensajes: 23
Antigüedad: 13 años, 9 meses
Puntos: 0
Recorrer Array con jQuery al añadir fila tabla

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!