Guía 71 – Plugin «Select2_ajax» – Actualización 29/08/2024

Se ha ampliado el artículo para explicar:

  • Se ha actualizado el plugin «Select2_ajax» porque tal y como estaba, no se podía dejar sin valor un campo que tuviese aplicado este plugin.

 

  • Se ha creado otro ejemplo, que entiendo es más fácil de entender, ya que el originalmente puesto, por el modelo de datos que utiliza estaba un poco «retorcida» la lógica de funcionamiento y podía generar confusión en su uso.

Este es el modelo de datos del nuevo ejemplo llamado «s2_car» y se muestra 3 lookups dependientes.

DEMO:  https://fhumanes.com/s2_car/

El código JavaScript de ADD y EDIT es:

var ctrl_s2_manufacturer_id = Runner.getControl(pageid,'s2_manufacturer_id'); 
var ctrl_s2_model_id = Runner.getControl(pageid,'s2_model_id');
var ctrl_s2_engine_id = Runner.getControl(pageid,'s2_engine_id');

setSession('s2_filter_manufacturer',ctrl_s2_manufacturer_id.getValue(), ctrl_s2_model_id); 

ctrl_s2_manufacturer_id.on('change', function() {
  console.log("Change Manufacturer");
  setSession( 's2_filter_manufacturer',ctrl_s2_manufacturer_id.getValue(), ctrl_s2_model_id);
  ctrl_s2_model_id.setValue('');
  ctrl_s2_engine_id.setValue('');
  clearSelect2(ctrl_s2_model_id);
  clearSelect2(ctrl_s2_engine_id);
});

ctrl_s2_model_id.on('change', function() {
  console.log("Change Model");
  setSession( 's2_filter_model',ctrl_s2_model_id.getValue(), ctrl_s2_engine_id);
  ctrl_s2_engine_id.setValue('');
   clearSelect2(ctrl_s2_engine_id);
});

ctrl_s2_engine_id.on('change', function() {
  console.log("Change Engine");	
});

Si deseas acceder al artículo completo, pulsa el siguiente enlace.

Guía 88 – Instalación de Plugins en PHPRunner v11

Algunos de los desarrolladores en PHPRunner me han preguntado:

  • ¿Los plugins de mi Blog funcionan en la versión 11?
  • ¿Cómo se instalan los plugins en la versión 11?

El presente artículo es para contestar estas preguntas a todos aquellos que deseen probar sus desarrollos en la citada versión y que utilicen alguno de los plugins que han descargado de mi Blog.

Si está interesado en este tema, sigue leyendo el artículo en este enlace.

Guía 87 – Añadir CSS dinámico a página LIST de paneles

Este caso, también, mi compañero Rubén tenía la necesidad de utilizar paneles en la página LIST y poder colorear (diferenciar) estos paneles dependiendo de la información de este.

Estuvimos buscando en los ejemplos y en el manual de Xlinesoft y no fuimos capaces de encontrar nada sobre este tema, así que os voy a contar cómo lo hemos resuelto.

Objetivo

Poder singularizar con colores, imágenes, etc. , los paneles de las páginas LIST dependiendo de su contenido.

DEMO:  https://fhumanes.com/panel_css/

Si estás interesado en este tema, sigue leyendo el artículo en este enlace.

Crear informes con phpSpreadsheet (actualización 24/07/2024)

En esta actualización se ha intentado mejorar la seguridad y la información que se facilita al usuario para indicar que el informe se está elaborando.

En concreto, se ha puesto un gráfico de progreso para indicar que el informe se está elaborando o se está descargando.

El botón de 3 estado queda codificado:

  • Client (before):
Swal.fire({
    // icon: 'info',
   title: 'El Informe se ha inciado y se está ejecutando',
   text: '',
   imageUrl: "MyCode/images/calculated.gif",
   imageHeight: 200,
   imageAlt: "Estamos trabajando",
   timer: 60000,
   timerProgressBar: true,
   toast: true,
   showConfirmButton: false,
   position:  'center', // "top-start",
   footer: ''
  })
  • Server:
$_SESSION['report_fase'] = 1;
$_SESSION['report_file'] = '';

include "MyCode/Report001/report.php";

$_SESSION['report_fase'] = 2;
$result['report_file'] = $_SESSION['report_file']
  • Cient (after):
window.open("MyCode/Report001/report.php","_blank" ); 

Swal.fire({
    // icon: 'info',
   title: 'El Informe se ha descargado',
   text: '',
   imageUrl: "MyCode/images/download.gif",
   imageHeight: 200,
    imageAlt: "Estamos trabajando",
   timer: 4000,
   timerProgressBar: true,
   toast: true,
   showConfirmButton: false,
   position:  'center', // "top-start",
   footer: ''
  })

 

Con este sistema el proceso de elaboración del informe se fracciona en 2 fases (la obtención y la descarga). A nivel de seguridad, no se puede ejecutar el informe aunque se conozca la URL del mismo y al usuario se le facilita el gráfico indicando que se está elaborando el informe.

DEMO: https://fhumanes.com/reports/

Si te interesa este tema o deseas disponer del ejemplo, sigue este enlace.

PHP vs. Java: ¿Cuál es el adecuado para su aplicación?

PHP vs Java Leí este artículo porque he trabajado muchas veces en Java y en PHP y deseaba confrontar si mi opinión al respecto coincidía con el artículo.

En general, salvo alguna apreciación sobre el rendimiento, donde se ha valorado un excelente rendimiento a PHP, con todo me sentía totalmente identificado.

No tengo que olvidar que llevo unos cuantos años «alejado» de Java y por ocio, «cerca» de PHP. También, no se me olvida que el artículo es de una autor que trabaja en Zend (mantenedora de la actualizaciones de PHP), por lo que seguro está un poco sesgado.

Artículo de Zend

Es corto, directo e interesante.

Traducción un apartado del artículo:

PHP vs. Java: diferencias clave

Existen varias diferencias importantes al comparar PHP con Java. Son tan importantes que me pregunto si existe una comparación justa: si bien ambas son herramientas muy poderosas, es algo así como comparar un taladro eléctrico con una sierra de mesa. Aún así, ambos ofrecen excelentes resultados para aplicaciones web modernas y los desarrolladores a menudo se encuentran atrapados entre los dos lenguajes.

Seguir leyendo PHP vs. Java: ¿Cuál es el adecuado para su aplicación?

Blog personal para facilitar soporte gratuito a usuarios de React y PHPRunner