type - serialize form jquery ajax post
EnvĂo de formulario HTML con Jquery AJAX (3)
Estoy tratando de enviar un formulario HTML usando AJAX usando este ejemplo .
Mi código HTML:
<form id="formoid" action="studentFormInsert.php" title="" method="post">
<div>
<label class="title">First Name</label>
<input type="text" id="name" name="name" >
</div>
<div>
<label class="title">Name</label>
<input type="text" id="name2" name="name2" >
</div>
<div>
<input type="submit" id="submitButton" name="submitButton" value="Submit">
</div>
</form>
Mi guion
<script type="text/javascript">
$(document).ready(function() {
$(''#formoid'').ajaxForm(function() {
alert("Thank you for your comment!");
});
});
</script>
Esto no funciona, ni siquiera recibo el mensaje de alerta y cuando lo envío no quiero redirigirlo a otra página, solo quiero mostrar el mensaje de alerta.
¿Hay una forma simple de hacerlo?
PD: Tengo varios campos, acabo de poner dos como ejemplo.
Descripción rápida de AJAX
AJAX es simplemente Javascript o XML Asíncrono (en la mayoría de las situaciones más nuevas JSON). Debido a que estamos haciendo una tarea de ASYNC, es probable que proporcionemos a nuestros usuarios una experiencia de interfaz de usuario más agradable. En este caso específico, estamos haciendo una presentación de formulario usando AJAX.
Realmente rápidamente hay 4 acciones web generales GET
, POST
, PUT
y DELETE
; estos se corresponden directamente con SELECT/Retreiving DATA
, UPDATING/UPSERTING DATA
, UPDATING/UPSERTING DATA
, y DELETING DATA
. Un formulario HTML / ASP.Net predeterminado / PHP / Python o cualquier otra acción de form
es "enviar", que es una acción POST. Debido a esto, todos a continuación describirán cómo hacer un POST. A veces, sin embargo, con http, es posible que desee una acción diferente y probablemente desee utilizar .ajax
.
Mi código específicamente para ti (descrito en los comentarios del código):
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<form id="formoid" action="studentFormInsert.php" title="" method="post">
<div>
<label class="title">First Name</label>
<input type="text" id="name" name="name" >
</div>
<div>
<label class="title">Name</label>
<input type="text" id="name2" name="name2" >
</div>
<div>
<input type="submit" id="submitButton" name="submitButton" value="Submit">
</div>
</form>
<script type=''text/javascript''>
/* attach a submit handler to the form */
$("#formoid").submit(function(event) {
/* stop form from submitting normally */
event.preventDefault();
/* get the action attribute from the <form action=""> element */
var $form = $( this ),
url = $form.attr( ''action'' );
/* Send the data using post with element id name and name2*/
var posting = $.post( url, { name: $(''#name'').val(), name2: $(''#name2'').val() } );
/* Alerts the results */
posting.done(function( data ) {
alert(''success'');
});
});
</script>
</body>
</html>
Documentación
De jQuery sitio web $.post
documentación.
Ejemplo : enviar datos de formulario utilizando solicitudes ajax
$.post("test.php", $("#testform").serialize());
Ejemplo : publicar un formulario usando ajax y poner los resultados en un div
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<form action="/" id="searchForm">
<input type="text" name="s" placeholder="Search..." />
<input type="submit" value="Search" />
</form>
<!-- the result of the search will be rendered inside this div -->
<div id="result"></div>
<script>
/* attach a submit handler to the form */
$("#searchForm").submit(function(event) {
/* stop form from submitting normally */
event.preventDefault();
/* get some values from elements on the page: */
var $form = $(this),
term = $form.find(''input[name="s"]'').val(),
url = $form.attr(''action'');
/* Send the data using post */
var posting = $.post(url, {
s: term
});
/* Put the results in a div */
posting.done(function(data) {
var content = $(data).find(''#content'');
$("#result").empty().append(content);
});
});
</script>
</body>
</html>
Nota IMPORTANTE
Sin utilizar OAuth o, como mínimo, HTTPS (TLS / SSL), no utilice este método para datos seguros (números de tarjeta de crédito, SSN, cualquier cosa que sea PCI, HIPAA o relacionada con el inicio de sesión).
Si agrega:
jquery.form.min.js
Simplemente puede hacer esto:
<script>
$(''#myform'').ajaxForm(function(response) {
alert(response);
});
// this will register the AJAX for <form id="myform" action="some_url">
// and when you submit the form using <button type="submit"> or $(''myform'').submit(), then it will send your request and alert response
</script>
var postData = "text";
$.ajax({
type: "post",
url: "url",
data: postData,
contentType: "application/x-www-form-urlencoded",
success: function(responseData, textStatus, jqXHR) {
alert("data saved")
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
}
})