JS生成的GET变量没有被PHP读取

时间:2016-03-29 03:57:53

标签: php jquery

我使用JavaScript生成表单的action属性:

$("#select-font").on('change', function(){
    var font = $(this).val();
    $("#font-family").val(font);
    $(this).css({
      'font-family': font
    });
    $("#edit-doc").css({
      'font-family': font
    });
    // BUG IS HERE --->
    $('#save')
        .attr('src', '/img/icons2/save.png')
        .attr('onclick', '$(this).parents("form").submit();');
    $('#save')
        .parents('form')
        .attr('action', 
            String($('#save')
                .parents('form')
                .attr('action')) + '&autosave=true');
    });
    $("#select-font-size")
        .on('change', function(){
            var size = $(this).val();
            $("#edit-doc").css({
                'font-size': size
            });
            $("#font-size").val(size);
            // BUG IS HERE --->
            $('#save')
                .attr('src', '/img/icons2/save.png')
                .attr('onclick', 
                    '$(this).parents("form").submit();');
            $('#save')
                .parents('form')
                .attr('action',   
                    String($('#save')
                        .parents('form')
                        .attr('action')) + '&autosave=true');
        });

GET变量传递给下一页;在网址栏中,该位置显示为http://localhost/foo/?var1=a&var2=b&autosave=true。但是,当我测试GET变量时:

if($_GET["autosave"]){
   // some code...
}

条件未运行。为什么PHP不能看到变量?

1 个答案:

答案 0 :(得分:1)

而不是使用

if($_GET["autosave"]){
    // some code...
}

尝试:

if (isset($_GET["autosave"])) {
    // your code...
}

此外,在添加处理程序时,请尝试此操作,而不是使用内联单击处理程序,请使用jQuery.on()

$('#save')
    .attr('src', '/img/icons2/save.png')
    .on('click', function(){
         $(this).parents("form").submit();
    });