Quiero guardar el nombre de la plantilla
Ya que ya estás cargando php en este archivo, ¿por qué no lo pasas como parámetro de URL? '''javascript urlStore: '<?php base_url(); ?>/dragdropeditor/dragdrop/add?templateId=<?=$templateId?>', ``` Te aconsejaría tener todo esto ejecutándose bajo la sesión del usuario con tokens, etc., pero por ahora eso debería funci...
Lee la respuesta completa abajo ↓Pregunta
Hola @artf @sonnylloyd @arthuralmeidap @cmcintosh
Estoy intentando almacenar el nombre de la plantilla, pero no estoy seguro de cómo pasar el nombre de la plantilla junto con los datos de la plantilla.
Quiero decir, quiero almacenar el nombre de la plantilla y los datos de la plantilla con la ayuda de un solo botón de enviar.
A continuación está mi código:
'''js
<form id="save-plantilla" clase="test-form" acción="<?php echo base_url(); ?>dragdropeditor/dragdrop/add" method="POST" style="display:none"> <div class="putsmail-c"> <div class="gjs-sm-property" style="font-size: 10px"> <span class="form-status" style="opacidad: 0"> <i class="fa fa-refresh anim-spin" aria-hidden="true"></i> </span> </div> </div> <div class="gjs-sm-property"> <div class="gjs-field"> <span id="gjs-sm-input-holder"> <tipo de entrada="texto" nombre="nombre plantilla" marcador de posición="Nombre de la plantilla" requerido> </span> </div> </div> <input type="hidden" name="body"> <button class="gjs-btn-prim gjs-btn-import" style="width: 100%">Guardar</button> </form> </div> <script type="text/javascript"> var editor = grapesjs.init ({ Altura: '100%', contenedor: '#gjs', Plugins: ['GJS-preset-newsletter'], storageManager: { id: '', Tipo: 'A distancia', guardado automático: falso, urlStore: '<?php base_url(); ?>/dragdropeditor/dragdrop/add', contentTypeJson: cierto, }, }); editor. Panels.addButton('options', [{ id: 'guardar', claseNombre: 'fa fa-floppy-o icon-blank', comando: función (editor, remitente) { si (remitente) sender.set ('active', false); editor.store(); alert('¡Plantilla guardada correctamente!'); }, atributos: {título: 'guardar en la base de datos'} }]); Vamos a añadir a esta demo la posibilidad de probar nuestros boletines var mdlClass = 'gjs-mdl-dialog-sm'; var pnm = editor. Paneles; var cmdm = editor. Órdenes; var testContainer = document.getElementById("save-template"); var contentEl = testContainer.querySelector('input[name=body]'); VAR MD = Editor. modal; cmdm.add('send-test', { run(editor, sendero) { sender.set('active', 0); var modalContent = md.getContentEl(); var mdlDialog = document.querySelector('.gjs-mdl-dialog'); var cmdGetCode = cmdm.get('gjs-get-inlined-html'); contentEl.value = cmdGetCode & & cmdGetCode.run(editor); mdlDialog.ClassName += ' ' + mdlClass; testContainer.style.display = 'bloque'; md.setTitle('Por favor, introduzca el nombre de la plantilla'); md.setContent(''); md.setContent(testContainer); md.open(); md.getModel().once('change:open', function() { mdlDialog.ClassName = mdlDialog.className.replace(mdlClass, ''); Estado limpio }) } }); pnm.addButton('options', { id: 'enviar-prueba', claseNombre: 'fa fa-papel-avión', Orden: 'enviar-probar', atributos: { 'título': 'Boletín de prueba', 'data-tooltip-pos': 'abajo', }, }); FA FA-Refresh var statusFormElC = document.querySelector('.form-status'); var statusFormEl = document.querySelector('.form-status i'); var ajaxTest = ajaxable(testContainer). onStart(function(){ statusFormEl.className = 'fa fa-refresh anim-spin'; statusFormElC.style.opacity = '1'; statusFormElC.className = 'form-status'; }) .onResponse(function(res){ if (res.data) { statusFormElC.style.opacity = '0'; statusFormEl.removeAttribute('data-tooltip'); md.close(); } else if(res.errors){ statusFormEl.className = 'fa fa-círculo-exclamación'; statusFormEl.setAttribute('data-tooltip', res.errors); statusFormElC.className = 'form-status text-danger'; } }); </script>Respuestas (3)
Ya que ya estás cargando php en este archivo, ¿por qué no lo pasas como parámetro de URL?
'''javascript urlStore: '<?php base_url(); ?>/dragdropeditor/dragdrop/add?templateId=<?=$templateId?>',
Te aconsejaría tener todo esto ejecutándose bajo la sesión del usuario con tokens, etc., pero por ahora eso debería funcionar.
@daniel-farina Estoy intentando guardar el nombre de la plantilla desde un cuadro de texto de entrada y no desde el TemplateId
Bueno, siempre hay una opción para usar tu llamada ajax personalizada donde puedes simplemente añadir 'getHtml' y 'getCss' a tus datos.
Si es necesario usar 'editor.store()', puedes añadir/actualizar 'params' (que se pasarán con cualquier solicitud) en la instancia de RemoteStorage '''js const RemoteStorage = editor. StorageManager.get('remote'); RemoteStorage.set('params', {yourKey: 'yourValue'}) editor.store();
Preguntas y respuestas relacionadas
Continúa investigando con debates sobre temas similares.
Issue #375
Editar plantilla en la base de datos, necesito ayuda con el urlLoad
@arthuralmeidap @artf @cmcintosh Estoy intentando editar una plantilla existente en la base de datos, No puedo enviar los datos de la plant...
Issue #472
Modal
Hola @artf Estoy intentando guardar mi plantilla en la base de datos al hacer clic en guardar y quería mostrar un mensaje de éxito en Toast...
Issue #931
[Pregunta] Problemas para guardar en la base de datos
Hola, Estoy teniendo algunos problemas para guardar la plantilla en la base de datos y no estoy muy seguro de por qué está pasando esto. He...
Issue #665
Componente personalizado y guardado
¡Perdón, yo otra vez! Estoy intentando guardar mi plantilla con mi nuevo componente "img-link": Pero cuando guardo mi plantilla usando el c...
Plugins de pago que cumplen con este problema
Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.
Cargando recomendaciones de plugins de pago...
Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.
Explora plugins gratuitos →Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.
Explora plugins premium →Tutoriales relacionados
Guías detalladas sobre el mismo tema.
Explorar categorías de plugins
Ve directamente a las páginas de categorías de plugins en el marketplace.