Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/12/2018, 10:08
Avatar de avielo
avielo
 
Fecha de Ingreso: junio-2008
Ubicación: Córdoba (España)
Mensajes: 111
Antigüedad: 16 años, 5 meses
Puntos: 2
jqGrid Tablas Relacionadas

Buenas tardes,

Estoy retomando php y javasvript después de mucho tiempo, y he usado el pluging jqGrid, para crear las grillas. Lo que he usado bien, para editar altas y modificar sin problema. El problema me lo encuentro, cuando quiero usar una tabla con datos relacionados.

La tabla es las cuotas de unos afiliados, que estan relacionadas con los propios afiliados. Para editar uso el formulario de jqgrid. He intentado poner un select, para que elijan el afiliado, pero no me carga los datos.
Le he dado muchas vueltas y no se que se me puede estar pasando. Decir que ando un poco oxidado. Perdón si hay fallos muy gordos.

Os pongo my código.


Index.html:

Código:
<script type="text/javascript">
			$(document).ready(function(){
		   		jQuery("#tblCuotas").jqGrid({
					url:'cargaCuotas.php',
			   		editurl: "editCuotas.php",
					datatype: 'json',
					mtype: 'POST',
					colModel:[
						{
							label: 'ID Cuota',
							name: 'idCuota',
							index:'idCuota',
							width: 50,
							key: true,
							editable: true,
							hidden: true
						},
						{
							label: 'Num. Cuota',
							name: 'NumD',
							index:'NumD',
							width: 50,
							editable: true,
							editoptions : { required: true, placeholder: "Número de Cuota requieredo"}
						},
						{
							label: 'Num. Afiliado',
							name: 'NumAfiliado',
							index:'NumAfiliado',
							width: 150,
							editable: true,
							edittype: 'select',
							formatter:'select',
							editoptions : { dataurl: 'afiliadosSelect.php' },
							editrules : { required: true, placeholder: "Número de Cuota Afiliado"}
						},
						{
							label: 'Nombre',
							name: 'NOMBRE',
							index:'NOMBRE',
							width: 300,
							editable: true
						},
						{
							label: 'Cuota',
							name: 'CUOTA',
							index:'CUOTA',
							width: 150,
							editable: true,
							editoptions : { required: true, placeholder: "Importe de la cuota requieredo"}
						},
						{
							label: 'Mes',
							name: 'MES',
							index:'MES',
							width: 120,
							editable: true,
							editoptions : { }
						},
						{
							label: 'Año',
							name: 'ANNO',
							index:'ANNO',
							width: 50,
							editable: true,
							editoptions : { }
						},
						{
							label: 'Pago',
							name: 'PAGO',
							index:'PAGO',
							width: 50,
							editable: true,
							edittype: 'select',
							editoptions : { value: "Y:SI;N:NO" }
						},
						{
							label: 'Forma Pago',
							name: 'FormaPago',
							index:'FormaPago',
							width: 100,
							editable: true,
							editoptions : { }
						}
						
					],	
			   		loadonce: false,
			   		width: window.innerWidth-20,
			   		height: window.innerHeight-150,
					pager: '#paginacion',
					rowNum: 50,
					rowList:[50,100,150],
					sortname: 'NumD',
					sortorder: 'asc',
					viewrecords: true,
					caption: 'CUOTAS'
				});   
				
				
				jQuery("#tblCuotas").jqGrid('navGrid','#paginacion',
					{edit:true,add:true,del:true},
					// options for the Edit Dialog
											   
					{
						html5Check :  true,
						editCaption: "The Edit Dialog",
						recreateForm: true,
						checkOnUpdate : true,
						checkOnSubmit : true,
						closeAfterEdit: true,
						reloadAfterEdit:true,
						reloadAfterSubmit:true,
						errorTextFormat: function (data) {
                        	return 'Error: ' + data.responseText
                    	},
						buttons : [
							{
								side : "right",
								text : "Afiliado",
								position : "first",
								click : function( form, params, event) {
									alert("Custom action in search form");
								}
							}
							]
                		},
					
											
					// options for the Add Dialog
					{
						closeAfterAdd: true,
						html5Check : true,
						recreateForm: true,
						errorTextFormat: function (data) {
							return 'Error: ' + data.responseText
						}
					},
					// options for the Delete Dailog
					{
						errorTextFormat: function (data) {
							return 'Error: ' + data.responseText
						}
					});
			
			});


		</script>
afiliadosSelect.php:

Código:
<?php
    include "../class/tAfiliados.php";

	echo '<script>alert("Custom action in search form");</script>';
	$oAfiliado = new tAfiliados(1, 0, 1, 1);
	$respuesta = $oAfiliado->selectAfiliados();
	

    echo $respuesta;
?>
tAfiliados.php:

Código:
<?php

include 'tMySQL.php';
 

class tAfiliados
{
	
	public function selectAfiliados()
	{
		$oMySQL = new tMySQL();
				
		if ($oMySQL->bConnect)
		{
			$cSQL ="SELECT COUNT(*) AS cuantos FROM afiliados WHERE borrado=0";	
			$this->fila = $oMySQL->countQuery($cSQL);
			$this->cuantos = $this->fila['cuantos'];
			
			$query = "SELECT idAfiliado, NumAfiliado, NOMBRE FROM afiliados WHERE borrado=0 ORDER BY NOMBRE"; 
			$result = $oMySQL->GetQuery($query);

			$response ='<select>';
			$i=0;
			while( $i <= $this->cuantos ) {
				$response .= '<option value="'.$result[$i]['NumAfiliado'].'">'.$result[$i]['NOMBRE'].'</option>';
				$i++;
			}
			$response .= '</select>';
			
		}
				
		$oMySQL->Close();	
		return $response;
	}
}

?>
Un saludo y muchas gracias por adelantado.
__________________
http://www.avielomarketing.com