2016-03-29 6 views
0

ich JavaScript bin mit einem action Attribut des Formulars zu generieren:JS-generierte GET-Variablen nicht PHP gelesen werden

$("#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'); 
     }); 

Die GET-Variable auf die nächste Seite übergeben wird; In der URL-Leiste wird der Standort als http://localhost/foo/?var1=a&var2=b&autosave=true angezeigt. Wenn ich jedoch die GET-Variable teste:

Die Bedingung wird nicht ausgeführt. Warum kann PHP die Variable nicht sehen?

+0

Schauen Sie sich die empfangene URL zuerst auf der PHP-Seite –

+0

Nun, ich habe 'print_r' auf dem GET-Array verwendet, es gab mir : 'Array ([var1] => a [var2] => b [autosave] =>)', damit der Wert nicht übergeben wird, sondern die aktuelle Variable erstellt wird. – TricksfortheWeb

+0

Überprüfen Sie dann auf der JS-Seite, ob es korrekt übergeben wurde –

Antwort

1

Anstatt mit

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

Versuch:

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

Auch beim Hinzufügen Handler diese versuchen, anstatt die Inline-Click-Handler verwenden, verwenden jQuery.on()

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