Estoy tratando de hacer una página web usando matraz y html. en un momento, necesito un número variable de campos de entrada, sin volver a cargar la página. Planeo hacer esto con un botón que dice "agregar campo", y cuando hacen clic en él, aparece un nuevo campo para que escriban. (Este campo tendrá un botón de envío y solo tendrá efecto cuando presionen el botón de enviar, para que puedan dejarlo en blanco y no afectar nada)
No pude encontrar nada sobre agregar campos emergentes en html o matraz, pero si hay una manera, me encantaría saberlo. en cambio, (y tal vez temporalmente), he implementado algo de javascript en mi código html. este javascript funciona y crea un campo emergente, pero cuando intento crear una variable de formulario para pasar a la página de python, me da un error. la página funciona bien, pero la variable no se pasa a la página de python para que python pueda imprimirla.
¿Alguien puede decirme una forma de hacer un campo de entrada emergente en matraz y html y mabye javascript?
Aquí está el código que estoy usando actualmente:
pitón:
app = Flask(__name__) app.config['SECRET_KEY'] = 'a_secret_key'#secret key @app.route('/', methods=('GET', 'POST')) def newroster(): if request.method == 'POST': variable = request.form['test'] print(variable) return render_template('test.html') if __name__ == '__main__': app.run(debug=True)html:
<html> <head> <title>Test</title> <script type = "text/javascript"> function buttonclick() { var iframe = document.createElement('iframe'); var html = '<html><body><form method="post"><label for="test">Input Here</label><br><input type="text" name="test"placeholder="Input" value="{{ request.form['test']}}"></input><br><button class="button" type="submit" name="submit" value="submit">Submit</button></form></body></html>'; iframe.src = 'data:text/html;charset=utf-8,' + encodeURI(html); document.body.appendChild(iframe); console.log('iframe.contentWindow =', iframe.contentWindow); } </script> </head> <body> <input type="button" value="Click Me" onclick="buttonclick()"> </body> </html>