Dos formularios conflictivos en `PHP`

Tengo un formulario en la pagina principal para actualizar saldos y otro en una ventana modal para registrar compras, así:

<!-- Con este botón llamo al modal Registrar Compras--> <button class="btn btn-primary" data-toggle="modal" data-target="#modalRegistrarCompras">   Registrar Turno </button>  <!-- Formulario para Actualizar Saldos --> <form role="form" method="post">   <button type="submit" name="actualizarSaldos" class="btn btn-danger">     Actualizar Saldos   </button>   <!-- Todos los campos del formulario para actualizar saldos-->   <?php      $  ActualizarSaldos = new ControladorSaldos();      $  ActualizarSaldos -> ctrActualizarSaldos();   ?> </form>  <!-- Modal Registrar Compras --> <div id="modalRegistrarCompras" class="modal fade" role="dialog">   <form role="form" method="post" autocomplete="off">     <!-- Todos los campos del formulario para registrar compras-->     <button type="submit" class="btn btn-primary">       Registrar Compras     </button>     <?php       $  registrarCompra = new ControladorCompras();       $  registrarCompra -> ctrRegistrarCompras();     ?>   </form> </div> 

La idea es registrar varias compras desde el modal y luego actualizar saldos una sola vez desde la pagina principal.

Notese que los dos controladores son diferentes.

El problema que tengo es que al registrar una compra, se ejecuta el controlador de saldos y no el de compras. Llegué a esta conclusión tras comentar estas dos líneas de código:

<?php   //$  ActualizarSaldos = new ControladorSaldos();   //$  ActualizarSaldos -> ctrActualizarSaldos(); ?> 

Las dos acciones por separado funcionan, es decir, con estas dos líneas de código comentadas, las compras a través del modal se registran correctamente. Luego, si quiero actualizar saldos, habilito estas dos líneas de código y se actualizan los saldos correctamente.

Mi duda es:

¿Qué debo cambiar en el código para que ambos formularios inserten la información de manera independiente en la tabla que les corresponde, sin que entren en conflicto los dos controladores?

¿ Mejor manera de Generar dinámicamente una cantidad determinada de formularios dependiendo del input recogido?

Veréis, tengo una componente <PreTest /> que se encarga de recoger 3 datos del usuario mediante una dropdown form. Uno es “número de preguntas”, otro “tiempo”, y otro “dificultad”. El que me interesa en este caso es el primero, el de “numero de preguntas”.

Dependiendo si elige “5 preguntas”, “10 preguntas”, o “15 preguntas”, (items={['5 Preguntas', '10 Preguntas', '15 Preguntas']) lo que me gustaría es que se generasen la misma cantidad del componente <Test /> en la siguiente pantalla dependiendo de que ha pinchado el usuario.

Esto en principio no es muy díficl, el problema es que lo tengo diseñado de forma que no se me ocurre muy bien como hacerlo, porque lo tengo estructurado con Rutas y Links:

import React from "react" import Footer from "../Footer/Footer" import NavBar from "../NavBar/NavBar"  import "./PreTest.css"  import { Autocomplete, TextInput, Icon } from 'evergreen-ui'  function PreTest(){     return (         <div>             <NavBar />             <main>         <div class="viewport-main">             <div class="main-container">                 <div class="title-create">                         <h2>Personaliza tu Test</h2>                 </div>                 <div class="icons-create-container">                         <div>                         <Icon icon="applications" color="success" size={100} />                                                                                     <Autocomplete                                                         title=""                                                                                                                  onChange={changedItem => console.log(changedItem)}                                                         items={['5 Preguntas', '10 Preguntas', '15 Preguntas']}                                                         >                                                         {(props) => {                                                             const { getInputProps, getRef, inputValue, openMenu } = props                                                             return (                                                             <TextInput                                                                 placeholder="Número de Preguntas"                                                                 value={inputValue}                                                                                                                                  innerRef={getRef}                                                                 {...getInputProps({                                                                 onFocus: () => {                                                                     openMenu()                                                                 }                                                                 })}                                                             />                                                             )                                                         }}                                                         </Autocomplete>                         </div>                         <div>                         <Icon icon="time" color="warning" size={100} />                             <Autocomplete                                                         title="Activar Temporizador"                                                         onChange={changedItem => console.log(changedItem)}                                                         items={['3 Minutos', '5 Minutos', '10 Minutos']}                                                         >                                                         {(props) => {                                                             const { getInputProps, getRef, inputValue, openMenu } = props                                                             return (                                                             <TextInput                                                                 placeholder="Tiempo límite"                                                                 value={inputValue}                                                                 innerRef={getRef}                                                                 {...getInputProps({                                                                 onFocus: () => {                                                                     openMenu()                                                                 }                                                                 })}                                                             />                                                             )                                                         }}                                                         </Autocomplete>                         </div>                         <div>                         <Icon icon="lightbulb" color="info" size={100} />                             <Autocomplete                                                         title="Indicar Dificultad"                                                         onChange={changedItem => console.log(changedItem)}                                                         items={['Fácil', 'Medio', 'Difícil']}                                                         >                                                         {(props) => {                                                             const { getInputProps, getRef, inputValue, openMenu } = props                                                             return (                                                             <TextInput                                                                 placeholder="Dificultad estimada"                                                                 value={inputValue}                                                                 innerRef={getRef}                                                                 {...getInputProps({                                                                 onFocus: () => {                                                                     openMenu()                                                                 }                                                                 })}                                                             />                                                             )                                                         }}                                                         </Autocomplete>                         </div>                 </div>             </div>         </div>       </main>          <Footer />                                                       </div>     ) }  export default PreTest

import React from "react" import { Pane, Label, Textarea, FilePicker } from 'evergreen-ui' import "./Test.css" import FooterTest from "../Footer/FooterTest" import NavBar from "../NavBar/NavBar"  function Test(){     return (         <div>             <NavBar />             <main>         <div class="viewport-main">             <div class="main-containerTest">                 <div class="title-create">                     <div class="half">                                 <Pane>                                 <Label                                     htmlFor="textarea-2"                                     marginBottom={2}                                     display="block"                                 >                                     Respuesta 1                                 </Label>                                 <Textarea width={400}                                     id="textarea-2"                                     placeholder="Escribe aquí tu repsuesta"                                 />                     </Pane>                     <Pane>                                 <Label                                     htmlFor="textarea-2"                                     marginBottom={2}                                     display="block"                                 >                                     Respuesta 2                                 </Label>                                 <Textarea width={400}                                     id="textarea-2"                                     placeholder="Escribe aquí tu repsuesta"                                 />                     </Pane>                     </div>                     <div class="half">                     <Pane>                                 <Label                                      htmlFor="textarea-2"                                     marginBottom={2}                                     display="block"                                 >                                     Respuesta 3                                 </Label>                                 <Textarea width={400}                                     id="textarea-2"                                     placeholder="Escribe aquí tu repsuesta"                                 />                     </Pane>                     <Pane>                                 <Label                                     htmlFor="textarea-2"                                     marginBottom={2}                                     display="block"                                 >                                     Respuesta 4                                 </Label>                                 <Textarea width={400}                                     id="textarea-2"                                     placeholder="Textarea placeholder..."                                 />                     </Pane>                     </div>                 </div>                 <div class="title-create">                 <FilePicker marginLeft={92} marginTop={50} multiple width={"50%"}/>                 </div>             </div>         </div>       </main>       <FooterTest />         </div>     ) }  export default Test

class App extends React.Component{    render(){     return (       <BrowserRouter>       <div className="App">       <Switch>         <Route exact path="/" component={Landing} />         <Route path="/entrar" component={Login} />         <Route path="/registro" component={Register} />         <Route path="/personaliza-test" component={PreTest} />         <Route path="/crear-test" component={Test} />         </Switch>       </div>       </BrowserRouter>     )   } }

Cómo veis, una manera que se me ha ocurrido sería en la ruta “/crear-test” podría facilmente renderizar el componente <Test /> la cantidad de veces que el usuario ha elegido el formulario. Pero claro estaría toda en esa ruta, en una sola pantalla. Mi intención es que cada <Test /> aparezca en una pantalla diferente. Es decir, cada vez que se pincha el botón “siguiente” que ahí en el componente <Test /> te avance a la siguiente recogida de datos. Así hasta, por ejemplo, 10 veces si el usuario eligió 10 en el dropdown.

Por ejemplo se puede generar dinámicamente rutas diferentes sin saber realmente cuantas van a ser necesarias hasta que el usuario elija en el dropdown? “/crear-test01”, “/crear-test02”, “/crear-test03” …etc

Formulario para crear formularios

Estoy creando un modulo que crea mediante un formulario una lista de preguntas que futura mente seran respondidas :

Texto (ejemplo: nombre) Tipo (ejemplo: type="text" esto se ve en un select de opciones para text, date, email, etc.) 

Guardo la información en mi tabla Preguntas:

pregunta_id empresa evento creador pregunta_texto pregunta_tipo 

yo presento la información en una tabla dentro de un form colocando en name un incremento para evitar que el usuario tenga que agregar el valor en el formulario y tenga mas orden :

$  i = 0; <form action=""> <?php do while, while, for (yo uso foreach en blade/laravel) ?>  <input name="answer<?=$  i++?>" type="<?=$  pregunta_tipo?>"> o lo que es lo mismo <input name="answer{{$  i++}}" type="{{$  t2->pregunta_tipo}}"> </form> 

guardo en mi tabla respuestas

respuesta_id empresa evento usuario pregunta_id respuesta 

Pregunta

se me a pedido que agregue campos especiales , select con múltiples opciones elegidas, radio, check box)

la forma de un select múltiple es distinta, al guardarse en una tabla y mostrarse en un ciclo:

if ($  es select != null)     for  <select name="answer<?=$  i++?>" multiple>       <option value="??">???</option> </select>      endfor endif 

Yo no soy fanático de los ciclos anidados uno dentro de otro mil veces y me gustaría preguntar si es correcta mi forma de atacar el problema o consulta si existe una forma mas eficiente

cmabiar estado en 2 formularios distintos

quiero hacer 2 formularios donde en formulario_1 presiono un botón y diga “Ocupado” y en el formulario_2 muestre el estado del buton “Ocupado” en tiempo real y presiono desde el formulario_1 “Desocupado” y en el formulario_2 cambie a “Desocupado” y hacerlo con 3 usuarios distintos espero me ayuden y he buscado pero solo se refresca en el mismo formulario para unas cabinas para saber si el usuario esta ocupado o desocupado y reflejarlos en pantallas distintas

Formularios con Eureka

estoy con un problema en Swift con Eureka, estoy tratando de obtener los datos del registro de un formulario en un segundo Tableview (en un Label )y cuando paso los datos (que solo estoy pasando uno para probar )me regresa el Label vacío y no estoy encontrando ni el error y menos la solución, no se donde estoy equivocándome, espero que ustedes puedan ayudarme por favor.este es el código :

import UIKit import Eureka

class ViewController: FormViewController {

var user: String = "" var pass: String = "" var fecha: Date? = nil var tel: String = "" var genero: String = "" var opcion: Bool = true  override func viewDidLoad() {     super.viewDidLoad()      form +++ Section("Registro")          <<< TextRow(){ row in             row.title = "Usuario"             row.placeholder = "Escribe tu nombre"     }.onChange({(row)in         self.user = row.value!     })         <<< PasswordRow(){ row in             row.title = "Contrasena"             row.placeholder = "Escribe tu contrasena"     }.onChange({(row) in         self.pass = row.value!     })          <<< DateRow(){             $  0.title = "Fecha de nacimiento"             $  0.value = Date()             }.onChange({(row) in                 self.fecha = row.value!             })        +++ Section("Datos personales")      <<< PhoneRow(){         $  0.title = "Celular"         $  0.placeholder = "Escribe tu numero"         }.onChange({(row) in             self.tel = row.value!         })         <<< PushRow<String>(){             $  0.title = "Genero"             $  0.options = ["Femenino","Masculino","Otro"]             $  0.value = ""             $  0.selectorTitle = "Seleciona una opcion"             }.onChange({(row) in                 self.genero = row.value!             })          <<< CheckRow(){row in             row.title = "Opcion"             row.value = true             }.onChange({(row) in                 self.opcion = row.value!             })     +++ Section("")          <<< ButtonRow{ row in           row.title = "Guardar"             }.onCellSelection({(cell, row)in                print(self.user)                print(self.pass)                 print(self.fecha ??  "Sin fecha")                 print(self.tel)                 print(self.genero)                 print(self.opcion)                    self.performSegue(withIdentifier: "enviar", sender: self)      })      func prepare(for segue: UIStoryboardSegue, sender: Any?) {         if segue.identifier == "enviar" {             let destino = segue.destination as! SegundoViewController              destino.usuario = user 

y este es el segundo ViewController

import UIKit

class SegundoViewController: UIViewController {

var usuario: String!  @IBOutlet weak var nombredelpaciente: UILabel!  override func viewDidLoad() {     super.viewDidLoad()      self.title = "Registro" 

nombredelpaciente.text = usuario

}    } 

espero puedan ayudarme, muchísimas gracias!!

Registo de formulários de utilizador no menu extensibilidade não mostra os respetivos formulários [pendente]

Tenho um projeto de extensibilidade (formulários de utilizador) em C#.

Na instalação local na minha máquina, quando tento registar os formulários para posteriormente adicionar os menus que vão chamar essas mesmas funções, não tive qualquer problema em adicionar.

No entanto ao instalar num servidor de testes de um cliente com a mesma versão, não me aparecem nenhuns formulários.

Anteriormente uma recompilação do projeto era suficiente para solucionar esta questão, no entanto isto já não functiona.

Versão produto: 10.0007.1030
Versão Plataforma: 10.0007.1033
Versão DBM : 10.0007.1027
Versão Conf. Base: 10.0007.1014

Guardar datos de formularios generados dinámicamente con PHP

Tengo un formulario donde hay varios campos. Cada uno de los campos es una categoría que es creada desde la aplicación (Es decir, puede haber tanto 1 como 20).

El problema que tengo, es que en el formulario, donde se les puede cambiar el nombre a cualquiera de ellas, no puedo recoger el valor de los campos para enviarlos mediante Ajax a un archivo PHP.

Ejemplo:

              __________ Deportes:    |__________|   // <input id="deportes"></input> Videojuegos: |__________|   // <input id="videojuegos"></input> Música:      |__________|   // <input id="musica"></input> 

Lo de arriba son los inputs que se muestran de forma dinámica.

Ahora, lo que no consigo hacer es pasar los los valores de todos los inputs a este objeto: (Que es el que se envía con el método POST en el Ajax)

var parametros = {}; 

Puede que la forma de hacerlo no tenga sentido dado que esto solo es un ejemplo, no he puesto mi caso real, pero si esto funciona, lo puedo aplicar a mi app.

Formulários no Joomla com limite de submissão [pendente]

Bom dia, gostaria de cria um formulário no Joomla e queria saber se existe algum módulo de formulário (chronoforms, form maker, etc…) que me permitisse limitar o número de inscrições?

Pois o local onde o evento irá ocorrer tem número limitado de lugares.


Hello, I would like to create a form in Joomla and would like to know if there is any form module (chronoforms, form maker, etc …) that would allow me to limit the number of registrations?

Because the place where the event will occur has a limited number of places.

¿Por qué bootstrap usa role=”form” en los formularios?

Cuando usas role="form" en un formulario el validador de W3C, lanza un warning:

El elemento form no necesita un atributo role

Por ejemplo:

<form class="form-inline" role="form">   <div class="form-group">     <label for="email">Email address:</label>     <input type="email" class="form-control" id="email">   </div>   <div class="form-group">     <label for="pwd">Password:</label>     <input type="password" class="form-control" id="pwd">   </div>   <div class="checkbox">     <label><input type="checkbox"> Remember me</label>   </div>   <button type="submit" class="btn btn-default">Submit</button> </form> 

La pregunta se encuentra parcialmente respondida aquí.

¿Es esto correcto?, si se incorpora para mejorar la accesibilidad ¿el problema estaría en el validador W3C?