将Jquery变量传递给php url

时间:2016-07-20 16:40:49

标签: php jquery html ajax get

我有一个看起来像这样的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, 

2 个答案:

答案 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.');
        }
    });
});