我有两个类似于高级的网格 - > http://trirand.com/blog/jqgrid/jqgrid.html
上的Master-Detail示例我无法插入详细网格(称为" preguntas"),因为主网格上所选行的ID(称为" secciones")为空。我通过POST在变量" section_id"中发送此值。 (参见gestionar_seccion.php的最后一行)。
// gestionar_seccion.php
var id_form_js = '<?php echo $id_form_php;?>'
var id_sec;
jQuery("#secciones").jqGrid({
url:'gestionar_seccionBD.php',
datatype: "json",
mtype: 'POST',
postData: {accion:"listarSec", tabla:"secciones", form_id: id_form_js},
colNames: ['SECCION','NOMBRE','DESCRIPCION','RESPUESTAS DUPLICADAS','VISUALIZACION RESPUESTAS','FORMULARIO'],
colModel: [
{name:'id_seccion', width:15, align:'right'},
{name:'nombre', editable:true, width:20, sortable:false, align:'left'},
{name:'descripcion', editable:true, width:30, sortable:false, edittype:"textarea", editoptions:{rows:"3",cols:"30"}},
{name:'rtas_duplicadas', width:20, align:'center', editable:true, resizable:false, sortable:false, edittype:"checkbox", editoptions:{value:"S:N"}, formatter:'checkbox'},
{name:'visualizacion_rtas', editable:true, width:20, align:'center', resizable:false, sortable:false, edittype:"select", editoptions:{value:"V:Vertical;H:Horizontal"}, formatter:'select'},
{name:'id_form', hidden: true, editrules: {edithidden: true}, editable: true, hidedlg: true, editoptions:{readonly:true, defaultValue:id_form_js}}
],
editurl: "gestionar_seccionBD.php",
caption: "SECCIONES",
onSelectRow: function (id) {
if (id == null) {
id=0;
if (jQuery("#preguntas").jqGrid('getGridParam','records') > 0) {
id_sec = id;
jQuery("#preguntas").jqGrid('setGridParam',{url:"gestionar_seccionBD.php", page: 1, rows: 10, mtype:'POST', postData:{accion:'listarPreg',tabla:"preguntas", section_id:id, form_id:id_form_js}});
jQuery("#preguntas").jqGrid('setCaption',"PREGUNTAS DE LA SECCION #" + id + " DEL FORMULARIO #" + id_form_js).trigger('reloadGrid');
}
} else {
id_sec = id;
jQuery("#preguntas").jqGrid('setGridParam',{url:"gestionar_seccionBD.php", page: 1, rows: 10, mtype:'POST', postData:{accion:'listarPreg',tabla:"preguntas", section_id:id, form_id:id_form_js}});
jQuery("#preguntas").jqGrid('setCaption',"PREGUNTAS DE LA SECCION #" + id + " DEL FORMULARIO #" + id_form_js).trigger('reloadGrid');
}
}
});
jQuery("#preguntas").jqGrid({
url:'gestionar_seccionBD.php',
datatype: "json",
mtype: 'POST',
colNames: ['PREGUNTA','OCULTA','TIPO RESPUESTA','SECCION','FORMULARIO','DESCRIPCION'],
colModel: [
{name:'id_pregunta', width:30, align:'right', editable:true, editoptions:{readonly:true}},
{name:'oculta', width:15, align:'center', editable:true, resizable:false, sortable:false, edittype:"checkbox", editoptions:{value:"S:N"}, formatter:'checkbox'},
{name:'tipo_respuesta', editable:true, width:25, align:'center', resizable:false, sortable:false, edittype:"select", editoptions:{value:"AB:Abierta;MO:Múltiple;UO:Unica;LV:Lista"}, formatter:'select'},
{name:'id_seccion', hidden: true, editrules: {edithidden: true}, editable: true, hidedlg: true, editoptions:{readonly:true, defaultValue:id_sec}},
{name:'id_form', hidden: true, editrules: {edithidden: true}, editable: true, hidedlg: true, editoptions:{readonly:true, defaultValue:id_form_js}},
{name:'id_fila', hidden: true},
{name: 'descripcion', editable:true, width:30, sortable:false, edittype:"textarea", editoptions:{rows:"3",cols:"30"}}
],
editurl:'gestionar_seccionBD.php',
caption: "PREGUNTAS"
}).navGrid('#pager_preg',{edit:true,add:true,del:true,search:false},{closeAfterEdit:true, reloadAfterSubmit:true, editData: {tabla: 'preguntas', form_id: id_form_js, section_id: id_sec}}, {closeAfterAdd:true, reloadAfterSubmit:true, editData: {tabla: 'preguntas', section_id: id_sec, form_id: id_form_js}});
// gestionar_seccionBD.php
$id_seccion = $_POST['section_id'];
$id_form = $_POST['form_id'];
$sql = "INSERT INTO adm.preguntas
(id_pregunta, oculta, tipo_respuesta, id_seccion, id_form, descripcion)
VALUES
($id_pregunta, '$oculta', '$tipo_respuesta', $id_seccion, $id_form, '$descripcion')";
我感谢任何建议,谢谢。