jqGrid со связанными таблицами в MySQL - PullRequest
0 голосов
/ 15 января 2019

Доброе утро,

Я возвращаюсь к php и javasvript через долгое время, и я использовал jqGrid, чтобы создавать сетки. То, что я использовал хорошо, редактировать высоко и модифицировать без проблем. Я могу найти проблему, когда хочу использовать таблицу со связанными данными.

В таблице указаны сборы некоторых филиалов, которые относятся к самим филиалам. Для редактирования используйте форму jqgrid. Я пытался поставить выбор, поэтому они выбирают партнера, но я не загружаю данные. Я сделал это много кругов, и я не знаю, что могло случиться со мной. Сказать, что я немного ржавый. Извините, если есть очень жирные ошибки.

Я поставил свой код.

Index.html:

<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:

 <?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:

    <?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;
   }
}

?>

Привет и большое спасибо.

1 Ответ

0 голосов
/ 16 января 2019

Пожалуйста, удалите эту строку из своего кода:

echo '<script>alert("Custom action in search form");</script>';

Это вызывает проблемы с загрузкой данных. Данные должны содержать только HTML-данные и ничего более.

Это эхо заставляет данные не загружаться в сетку.

ОБНОВЛЕНИЕ:

Извините, только сейчас я посмотрю ваш код. JavaScript чувствителен к регистру.

Пожалуйста, замените

editoptions : { dataurl: 'afiliadosSelect.php' },

С

editoptions : { dataUrl: 'afiliadosSelect.php' },

UPDATE2

Я подготовил демонстрацию с вашими настройками, и она работает нормально. Здесь является ссылкой . Пожалуйста, проверьте правильность вашего пути к afiliadosSelect.php в соответствующей игрушке вашего файла, где находится сетка. В этом случае вы должны получить в консоли ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...