Para hacer una solicitud de Ajax usando jQuery , puede hacerlo mediante el siguiente código.
HTML:
<form id="foo">
<label for="bar">A bar</label>
<input id="bar" name="bar" type="text" value="" />
<input type="submit" value="Send" />
</form>
<!-- The result of the search will be rendered inside this div -->
<div id="result"></div>
JavaScript:
Método 1
/* Get from elements values */
var values = $(this).serialize();
$.ajax({
url: "test.php",
type: "post",
data: values ,
success: function (response) {
// You will get response from your PHP page (what you echo or print)
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
Método 2
/* Attach a submit handler to the form */
$("#foo").submit(function(event) {
var ajaxRequest;
/* Stop form from submitting normally */
event.preventDefault();
/* Clear result div*/
$("#result").html('');
/* Get from elements values */
var values = $(this).serialize();
/* Send the data using post and put the results in a div. */
/* I am not aborting the previous request, because it's an
asynchronous request, meaning once it's sent it's out
there. But in case you want to abort it you can do it
by abort(). jQuery Ajax methods return an XMLHttpRequest
object, so you can just use abort(). */
ajaxRequest= $.ajax({
url: "test.php",
type: "post",
data: values
});
/* Request can be aborted by ajaxRequest.abort() */
ajaxRequest.done(function (response, textStatus, jqXHR){
// Show successfully for submit message
$("#result").html('Submitted successfully');
});
/* On failure of request this function will be called */
ajaxRequest.fail(function (){
// Show error
$("#result").html('There is error while submit');
});
El .success()
, .error()
y .complete()
devoluciones de llamada están en desuso a partir de jQuery 1.8 . Para preparar el código para su eventual eliminación, usar .done()
, .fail()
y .always()
en su lugar.
MDN: abort()
. Si la solicitud ya se ha enviado, este método cancelará la solicitud.
Por lo tanto, hemos enviado con éxito una solicitud de Ajax, y ahora es el momento de obtener datos al servidor.
PHP
A medida que hacemos una solicitud POST en una llamada Ajax ( type: "post"
), ahora podemos obtener datos usando $_REQUEST
o $_POST
:
$bar = $_POST['bar']
También puede ver lo que obtiene en la solicitud POST simplemente con cualquiera de los dos. Por cierto, asegúrese de que $_POST
esté configurado. De lo contrario, recibirá un error.
var_dump($_POST);
// Or
print_r($_POST);
Y está insertando un valor en la base de datos. Asegúrese de que está sensibilizando o escapando todas las solicitudes (ya sea que haya realizado una GET o POST) correctamente antes de realizar la consulta. Lo mejor sería usar declaraciones preparadas .
Y si desea devolver los datos a la página, puede hacerlo simplemente haciendo eco de esos datos como se muestra a continuación.
// 1. Without JSON
echo "Hello, this is one"
// 2. By JSON. Then here is where I want to send a value back to the success of the Ajax below
echo json_encode(array('returned_val' => 'yoho'));
Y luego puedes obtenerlo como:
ajaxRequest.done(function (response){
alert(response);
});
Hay un par de métodos abreviados . Puedes usar el siguiente código. Hace el mismo trabajo.
var ajaxRequest= $.post("test.php", values, function(data) {
alert(data);
})
.fail(function() {
alert("error");
})
.always(function() {
alert("finished");
});