Reputation: 600
I have a jquery function that looks like this:
$('.dislike_box a').click(function(event){
event.preventDefault();
var title = $(this).data('title');
alert(title);
$.ajax({
url: 'vote.php?vote=dislike&title=title',
success: function(result){
$('.dislike_box p.vote_text').text('Dont Like it.');
}});
});
My issue is when I alert the title variable it is correct but when I pass it to the php script to be put into the database the php script uses the $_GET[] method but puts the literal string "title" into the database instead of the variable value.
Answer: Thanks to @Ivan
url: 'vote.php?vote=dislike&title='+title,
Upvotes: 1
Views: 1849
Reputation: 6806
You are sending the literal string title
in your AJAX call. You would need to actually put your title value into your URL.
A better solution would be, if you make jQuery escape the values, so you don't need to worry, if your title contains special characters like ?
, &
, =
, etc.
$('.dislike_box a').click(function(event){
event.preventDefault();
var title = $(this).data('title');
alert(title);
$.ajax({
url: 'vote.php',
data: {
vote: 'dislike',
title: title
},
success: function(result){
$('.dislike_box p.vote_text').text('Dont Like it.');
}
});
});
Upvotes: 1
Reputation: 40618
The variable you are sending via AJAX isn't a variable but the string 'title'. Instead use + to add the variable in the URL.
$('.dislike_box a').click(function(event){
event.preventDefault();
var title = $(this).data('title');
alert(title);
$.ajax({
url: 'vote.php?vote=dislike&title='+title,
success: function(result){
$('.dislike_box p.vote_text').text('Dont Like it.');
}});
});
To retrieve the js variable in PHP file :
<?php
if(isset($_REQUEST['title'])) {
$title = $_REQUEST['title'];
}
Upvotes: 1