Envoyer comme / n'aime pas la base de données avec Ajax
-
11-12-2019 - |
Question
J'ai un petit problème, j'ai besoin d'envoyer une demande Ajax à un fichier. Voici mon fichier html (index.html)
<a id="like" href="./?act=like&id=24" title="Nobody likes this post!">Like</a> · <a id="dislike" href="./?act=dislike&id=24" title="Nobody dislikes this post!">Dislike</a>
et mon fichier similaire.php:
<?php
if(!is_logged()) {
header("Location: ./?act=Home");
die();
}
$uid = $user['id'];
$id = $_GET['id'];
if(isset($id)) {
$query = mysql_query("INSERT INTO ld (auth_id,post_id,val)
VALUES ('".$uid."','".$id."','1')");
if($query) {
header("Location: ".$_SERVER['HTTP_REFERER']);
} else {
echo "Contatta l'amministratore riportando l'errore 101";
}
} else {
header("Location: ./?act=Home");
}
?>
et ma table "LD":
== Struttura della tabella ld
|------
|Campo |Tipo |Null|Predefinito
|------
|//**id**//|int(5) |No |
|auth_id |varchar(5)|No |
|post_id |varchar(5)|No |
|val |varchar(1)|No |
== Dump dei dati per la tabella ld
|5|4|1|1
|6|4|1|1
|7|4|1|1
|8|4|1|1
|9|4|1|1
|10|4|1|1
|12|4|1|1
|13|4|1|1
|14|4|1|2
|20|4|15|1
|23|5|17|1
|29|4|17|1
|30|4|18|1
== Struttura della tabella ld
|------
|Campo |Tipo |Null|Predefinito
|------
|//**id**//|int(5) |No |
|auth_id |varchar(5)|No |
|post_id |varchar(5)|No |
|val |varchar(1)|No |
Je ne sais vraiment pas comment envoyer une demande Ajax, et j'ai également essayé d'apprendre Ajax mais aucun moyen, je ne peux pas le comprendre.
La solution
Vous devez utiliser jQuery, c'est en fait très simple avec elle.Incluez d'abord cela dans votre fichier HTML:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
Ajoutez cela, il s'appelle un "liste" et porte l'attention dans ce cas lorsque votre lien est cliqué sur:
// A # is used since we are using an id to get the element
// A . is used for a class, but we are using the id at the moment
$('#like').click(function(e) { // We assign a click listner with a handler (a function)
e.preventDefault(); // run this to stop it from going to a new page automatically
$.get('./', {'act' : 'like', 'id' : $(this).attr('data')}, function(e) {
// Handle success here
}, 'json'); // expecting a json object back by using echo json_encode(array(...)) in PHP
});
Avec mon exemple, vous devez modifier le HTML à ceci:
<a id="like" href="" data="24" title="Nobody likes this post!">Like</a>
Et puis vous pourriez faire la même chose avec l'aversion.Le {} comme le deuxième paramètre que j'ai fait dans le $ .GET est un tableau JavaScript comme un FYI.Voici la méthode $ .get que j'ai utilisé dans la documentation de JQuery: http://api.jquerery.com/jQuery.igrez /
Pour plus d'informations sur ce que Ajax est et comment ça marche, consultez cet article: http://www.webdesignerdepot.com/2008/11/how-ajax-works/
N'hésitez pas à demander des éclaircissements
Autres conseils
Je n'ai pas le représentant pour ajouter un commentaire, je dois donc mettre mes commentaires comme des réponses pour l'instant.Découvrez http://www.w3schools.com/ajax/default.asp et
Il serait trop long d'une réponse à expliquer Ajax et Jquery.