help me error xml

I am using dhtmlxGrid recently, well I try to load my grid with mysql and php file. but gives me xml error incorrect. I have read several posts, but have not found the solution. I leave part of my code to see if I can lend a hand. Thanks

my grid configuration:

function doOnLoad() {
mygrid = new dhtmlXGridObject(‘gridbox’);
mygrid.setImagePath(“codebase/imgs/”);
mygrid.setHeader(“Repuesto,Descripcion,Cantidad,Stock,Seleccionar Repuesto”);
mygrid.setInitWidths(“100,250,80,80,80”);
mygrid.setColAlign(“right,left,left,right,center”);
mygrid.setColTypes(“ro,ro,ro,ro,ro”);
mygrid.getCombo(5).put(2, 2);
mygrid.setColSorting(“int,str,int,str,int”);
mygrid.setColumnColor(“white,#d5f1ff,#d5f1ff”);
mygrid.setColumnMinWidth(50, 0);
mygrid.init();
mygrid.setSkin(“dhx_skyblue”);
mygrid.loadXML(“php/ObtenerRepuestos.xml”, function() {
mygrid.attachHeader("

,
,#rspan,#rspan,#rspan");
//set title filter field;
document.getElementById(“buscaR”).appendChild(document.getElementById(“repuesto”).childNodes[0]);
//set author fiter field;
document.getElementById(“buscaD”).appendChild(document.getElementById(“descripcion”).childNodes[0]);
// Esto es para lista desplegable opciones de busqueda por agrupacion y concidencia
/* var authFlt = document.getElementById(“buscaD”).appendChild(document.getElementById(“descripcion”).childNodes[0]);
	populateSelectWithAuthors(authFlt); */
    //block sorting and resize actions for second row;
    mygrid.hdr.rows[2].onmousedown = mygrid.hdr.rows[2].onclick = function(e) { (e || event).cancelBubble = true;
    }
    mygrid.setSizes();
});

}
function filterBy() {
var tVal = document.getElementById(“buscaR”).childNodes[0].value.toLowerCase();
var aVal = document.getElementById(“buscaD”).childNodes[0].value.toLowerCase();
for (var i = 0; i < mygrid.getRowsNum(); i++) {
var tStr = mygrid.cells2(i, 0).getValue().toString().toLowerCase();
var aStr = mygrid.cells2(i, 1).getValue().toString().toLowerCase();
if ((tVal == “” || tStr.indexOf(tVal) == 0) && (aVal == “” || aStr.indexOf(aVal) == 0)){
mygrid.setRowHidden(mygrid.getRowId(i), false);
}
else{
mygrid.setRowHidden(mygrid.getRowId(i), true);
}
}
}
function populateSelectWithAuthors(selObj) {
selObj.options.add(new Option(“All Authors”, “”));
var usedAuthAr = new dhtmlxArray();
for (var i = 0; i < mygrid.getRowsNum(); i++) {
var authNm = mygrid.cells2(i, 2).getValue();
if (usedAuthAr._dhx_find(authNm) == -1) {
selObj.options.add(new Option(authNm, authNm));
usedAuthAr[usedAuthAr.length] = authNm;
}
}
}

my php file generate xml

<?php error_reporting(E_ALL ^ E_NOTICE); //Conexiones Base de Datos require_once('../common/config.php'); require_once('../common/config_dp.php'); // XML Header header("Content-type: text/xml"); //encoding may be different in your case echo('<?xml version="1.0" encoding="utf-8"?>');

//start output of data
echo ‘’;

//output data from DB as XML
$sql = “SELECT * FROM producto ORDER BY id ASC”;
$res = mysql_query ($sql);

if($res){
while($row=mysql_fetch_array($res)){
//create xml tag for grid’s row
echo ("<row id=’".$row[‘id’]."’>");
print("");
print("");
print("");
print("");
print("");
print("");
}
}else{
//error occurs
echo mysql_errno().": “.mysql_error().” at “.LINE.” line in “.FILE.” file
";
}

echo ‘’;

?>

ya trataste de visualizar tu archivo xml en el browser?
mañana por la mañana te paso un ejemplo de como genero los xml con una consulta

saludos

si ya lo hice aqui como lo genera:

<?xml version="1.0" encoding="utf-8" ?>







Check
docs.dhtmlx.com/doku.php?id=othe … mon_errors

Most probably in your case problem caused by data encoding - be sure that all data is in UTF or change encoding parameter of XML

By the way, you are using old filtering syntax, there are a lot faster alternatives.
dhtmlx.com/docs/products/dht … _srnd.html

here is my example,

<?php
if ( stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml") )
   {
                header("Content-type: application/xhtml+xml");
    }
    else {
                header("Content-type: text/xml");
    }
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");

$mas=0;
echo "<rows>";
foreach($l["TABLES"][0] as $value){ //Se toma la tabla correcta de la salida
        $mas=$mas+1;
        $KUNNR=$value["KUNNR"]; 
        $XBLNR=$value["SPART"]; 
        $VBELN=$value["VBELN"]; 

print("<row id='".$mas."'>");
        echo "<cell>0</cell>";
        echo "<cell><![CDATA[".$KUNNR."]]></cell>";
        echo "<cell><![CDATA[".$XBLNR."]]></cell>";
        echo "<cell><![CDATA[".$VBELN."]]></cell>";

        print ("</row>");
} //foreach
echo "</rows>";
?>

Espero te sirva, saludos

Gracias por la ayuda!!!, una pregunta existe la forma de poder asignar valor a una columna en el grid, que no sea cargada desde el html o tabla??. a ver si me puedes orientar, ejemplo: lo que quiero es cargar de una tabla 4 campos, hasta aqui perfecto, pero adicional tengo otros 3 campos en el grid que no estan en mi tabla y quiero cargarles un valor por defecto.

Al momento de generar tu XML puedes agregarle los 3 campos adicionales en el ciclo de tu consulta, algo parecido a

$valor_defecto="default"; //dentro del ciclo de la consulta print("<row id='".$mas."'>"); echo "<cell>0</cell>"; echo "<cell><![CDATA[".$KUNNR."]]></cell>"; echo "<cell><![CDATA[".$XBLNR."]]></cell>"; echo "<cell><![CDATA[".$VBELN."]]></cell>"; echo "<cell><![CDATA[".$valor_defecto."]]></cell>"; echo "<cell><![CDATA[".$valor_defecto."]]></cell>"; echo "<cell><![CDATA[".$valor_defecto."]]></cell>"; print ("</row>");

De esta forma tu grid cargará con esos valores, espero te sirva

Saludos

De verdad que eres muy amable, perfecto. y si lo hago mediante sql como quedaria? estoy leyendo desde la tabla 2 campos

$grid->render_table(“producto”,“id”,“id,descripcion”);

pero el grid tiene : id,descripcion,cantidad

la idea es que el usuario ingrese la cantidad y luego actualizar estos datos a otra tabla

En ese caso puedes cargar tu xml para la cantidad como vacio, y en tu grid dejarle esa columna como editable para posteriormente mandar llamar al dataprocessor, lo que yo te recomiendo es que no cargues los datos vacios con una consulta sql, si no dejarlos en blanco en el xml

Genial, segui tu consejo y carga mi grid perfectamente, bien ahora quisiera saber si me puedes orientar un poco en como hacer lo siguiente: mi grid en cada fila tiene un checkbox, quisiera que al seleccionarlo se realizara un insert en otra tabla. Relamente estoy leyendo mucho acerca de esto pero el tiempo es mi enemigo. de verdad muchas gracias ya estaba cayendo en el tipico desespero
Saludos.