solucionado! esta es la funcion por si alguien la necesita alguna vez...
Código Javascript
:
Ver originalfunction Objeto(cod,tex,grupo){
this.cod=cod;
this.tex=tex;
this.grupo=grupo;
}
function newProd(){
var container = document.getElementById('funebre');
var cont = (++numero);
var nDiv = document.createElement('div');
nDiv.className = 'contentProducto';
nDiv.id = 'Campo' + cont;
var nCampo = document.createElement('input');
nCampo.name = 'campos[]';
nCampo.type = 'text';
nCampo.className = "amount";
nCampo.id = 'cantidad'+cont;
var a = document.createElement('a');
a.name = nDiv.id;
a.href = '#';
a.className = 'eraser';
a.onclick = elimCamp;
a.innerHTML = 'Eliminar';
var prod = document.createElement('select');
prod.name = 'prod[]';
prod.id = 'prod' + cont;
prod.className = "prodSelector";
var opt = document.createElement('option');
opt.value=0;
opt.innerHTML="Seleccione...";
opt.selected = true;
prod.appendChild(opt);
var array_options;
var grupo_anterior="";
var grupo;
var opcion;
//var selector = document.getElementById('prod2');
//alert(selector);
var array_options = new Array();
<? $n=1;
$sql = "SELECT id_producto, productos.id_categoria, titulo_prod, categorias.id_categoria, categorias.nombre_categoria FROM productos INNER JOIN categorias ON productos.id_categoria = categorias.id_categoria WHERE status_prod = '0'";
$con = mysql_query($sql)or die(mysql_error());
while($repeat = mysql_fetch_array($con)){
extract($repeat); ?>
array_options["<?=$n?>"] = new Objeto("<?=$n?>","<?=utf8_encode($titulo_prod)?>","<?=utf8_encode($nombre_categoria)?>");
<? $n++; } ?>
var grupo_anterior="";
var grupo;
var opcion;
for (var j in array_options){
if(grupo_anterior!=array_options[j].grupo){
grupo = document.createElement('OPTGROUP');
grupo.label = array_options[j].grupo;
grupo_anterior = array_options[j].grupo;
prod.appendChild(grupo);
}
opcion = document.createElement("OPTION");
opcion.setAttribute("value",array_options[j].cod);
opcion.innerHTML = array_options[j].tex;
prod.appendChild(opcion);
}
nDiv.appendChild(prod);
nDiv.appendChild(nCampo);
nDiv.appendChild(a);
container.appendChild(nDiv);
}