Para fazer uma solicitação Ajax usando jQuery, você pode fazer isso pelo seguinte 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');
});
A .success()
, .error()
e .complete()
chamadas de retorno são obsoleto a partir do jQuery 1.8 . Para preparar o código para a sua eventual remoção, use .done()
, .fail()
e .always()
em vez disso.
MDN: abort()
. Se a solicitação já tiver sido enviada, esse método abortará a solicitação.
Portanto, enviamos com sucesso uma solicitação do Ajax e agora é hora de coletar dados para o servidor.
PHP
À medida que fazemos uma solicitação POST em uma chamada Ajax ( type: "post"
), agora podemos pegar dados usando $_REQUEST
ou $_POST
:
$bar = $_POST['bar']
Você também pode ver o que recebe na solicitação POST simplesmente. BTW, verifique se $_POST
está definido. Caso contrário, você receberá um erro.
var_dump($_POST);
// Or
print_r($_POST);
E você está inserindo um valor no banco de dados. Certifique-se de sensibilizar ou escapar de todas as solicitações (se você fez um GET ou POST) corretamente antes de fazer a consulta. O melhor seria usar declarações preparadas .
E se você quiser retornar qualquer dado de volta à página, poderá fazê-lo apenas ecoando esses dados como abaixo.
// 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'));
E então você pode obtê-lo como:
ajaxRequest.done(function (response){
alert(response);
});
Existem alguns métodos de taquigrafia . Você pode usar o código abaixo. Faz o mesmo trabalho.
var ajaxRequest= $.post("test.php", values, function(data) {
alert(data);
})
.fail(function() {
alert("error");
})
.always(function() {
alert("finished");
});