我有一个看起来像这样的jquery函数:
$('.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.');
}});
});
我的问题是当我提醒标题变量它是正确的但是当我将它传递给php脚本放入数据库时,php脚本使用$ _GET []方法但是放入文字字符串" title& #34;进入数据库而不是变量值。
答案:感谢@Ivan
url: 'vote.php?vote=dislike&title='+title,
答案 0 :(得分:1)
您通过AJAX发送的变量不是变量,而是字符串'title'。而是使用+在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.');
}});
});
要在PHP文件中检索js变量:
<?php
if(isset($_REQUEST['title'])) {
$title = $_REQUEST['title'];
}
答案 1 :(得分:1)
您正在AJAX调用中发送文字字符串title
。您需要将标题值实际放入您的网址。
更好的解决方案是,如果你让jQuery转义值,那么你不必担心,如果你的标题包含特殊字符,如?
,&
,=
等等。
$('.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.');
}
});
});