Formulario While enviado por ajax
Publicado por sergio (12 intervenciones) el 20/03/2021 10:52:32
Buenos días, os comparto una duda a ver si me podéis echar un cable :-)
Tengo este While, un formulario cargado por ajax, lo podéis ver en: https://vocabularioingles.gratis/basico
El problrema es que únicamente funciona el primer formulario del bucle, los restantes lo que hacen es refrescar la página, en lugar de cargar por ajax. Abajo os comparto el código!!
WHILE:
js
MENSAJE DE RESPUESTA
Estoy dándole vueltas para que carguen todos los formularios del bucle pero sin éxito. Cualquier ayuda será bienvenida.
Muchas gracias!!
Tengo este While, un formulario cargado por ajax, lo podéis ver en: https://vocabularioingles.gratis/basico
El problrema es que únicamente funciona el primer formulario del bucle, los restantes lo que hacen es refrescar la página, en lugar de cargar por ajax. Abajo os comparto el código!!
WHILE:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
while ($line = mysqli_fetch_array($result)) {
if (isset($_GET['id'])) {
if ($id_registro == $line['id_clase']) {
echo "<form id=\"formulario\" method=\"POST\">";
echo '<tr>';
echo '<td>';
echo $line['espanol'];
echo '</td>';
echo '<td>';
echo "<input class=\"col-lg\" type=\"text\" name=\"respuesta\" placeholder=\"In english\"autocomplete=\"off\"> ";
echo '</td>';
echo "<input type=\"hidden\" name=\"ingles\" value='" . $line['ingles'] . "'> ";
echo '<td>';
echo "<input name=\"comprobrar\" class=\"myButton\" type=\"submit\" value=\"Comprobar\">";
echo '</td>';
echo '<td>';
echo "<input class=\"myButton_white\" type=\"submit\" name=\"solucion\"value=\"Respuesta\">";
echo '</td>';
echo '</tr>';
echo "</form>";
}
}
}
js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
$(document).ready(function () {
$("#formulario").bind("submit",function(){
// Capturamnos el boton de envío
var comprobar = $("#comprobar");
$.ajax({
type: $(this).attr("method"),
url: 'procesoAjax.php',
data:$(this).serialize(),
beforeSend: function(){
/*
* Esta función se ejecuta durante el envió de la petición al
* servidor.
* */
// comprobar.text("Enviando"); Para button
comprobar.val("Enviando"); // Para input de tipo button
comprobar.attr("disabled","disabled");
},
complete:function(data){
/*
* Se ejecuta al termino de la petición
* */
comprobar.val("Comprobar");
comprobar.removeAttr("disabled");
},
success: function(data){
/*
* Se ejecuta cuando termina la petición y esta ha sido
* correcta
* */
$(".respuesta").html(data);
},
error: function(data){
/*
* Se ejecuta si la peticón ha sido erronea
* */
alert("Problemas al tratar de enviar el formulario");
}
});
// Nos permite cancelar el envio del formulario
return false;
});
});
MENSAJE DE RESPUESTA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
require_once "includes/config/db2.php";
require_once "includes/config/conexion.php";
$id_clase = $_GET['id'];
$sql = "SELECT id, ingles, espanol FROM palabras";
$result = mysqli_query($con, $sql) or die('Consulta fallida: ' . mysqli_error());
if (isset($_POST['respuesta'])) {
if ($line = mysqli_fetch_array($result)) {
$var1 = $_POST['respuesta'];
$var2 = $_POST['ingles'];
if ($var1 == $var2) {
echo "Bien, has acertado ;-D";
} elseif (isset($_POST['solucion'])) {
echo $var2 . "... petardo!";
} else {
echo "Tienes que estudiar más :-p";
}
}
}
Estoy dándole vueltas para que carguen todos los formularios del bucle pero sin éxito. Cualquier ayuda será bienvenida.
Muchas gracias!!
Valora esta pregunta


0