Sí
Adler, como has dicho funciona, pero si inicializas
arra con
arra = [0] ya le estás diciendo que el primer elemento es cero. También decirte que la sintaxis correcta es
arra.push(elemento) y no
arra.push = (elemento) como has escrito (¿te funcionó?
)
En este caso no han hecho falta comillas en javascript, porque son números. Pero en caso de ser Strings habría que tener cuidado con las comillas, y si los registros de la BD pudieran contener comillas también, escaparlas con \ o eliminarlas.
Creo que la forma más fácil de hacerlo (consimiendo menos recursos) es eliminando el bucle javascript y construyendo un string en PHP para "pegarlo" en el código javascript
:
Código PHP:
<?
include("conexion.php");
$res = mysql_query("select * from categorias", $link);
$ristra = ""; // aquí irán todos los elementos para el array javascript
while( $row = mysql_fetch_assoc($res) )
$ristra .= "'" . $row["nombre"] . "', "; // añadimos un elemento a la ristra con una coma para el siguiente elemento
$ristra = ereg_replace(", $", "", $ristra); // quitamos la coma final residual
?>
<script type="text/javascript">
<!--
var miArr = [<?=$ristra?>]; // Saldrá en el código fuente generado lo siguiente:
// var miArr = ['útiles', 'higiene personal', 'hábitos diarios', 'electrónica', 'cuerpo', 'vestimenta'];
-->
</script>
Saludos.