Einstellung session-variable in php über jquery-click-Ereignis

So, ich schaue mir alle möglichen Antworten, die bisher auf Stackoverflow. Aber egal, wie ich versuche, ich kann nicht ankommen dieses zu wirken.

Ich versuche eine sessionvariable nach einem angeklickten verknüpft werden.

dies kann sein 'grid' oder 'Liste'

Ändern kann ich die Klasse, und die Aussicht auf den entsprechenden div. Aber, meine $.post Aufruf von php nicht übergeben Sie die variable ( im vorausgesetzt, da passiert nichts ) oder meine php-Aufruf ist falsch.

Hier ist mein code:

HTML

<li class="display-control-list-item" > <a href="javascript: void(0)" class="js-set-display list" id="list" > Listview </a> </li>
<li class="display-control-list-item" > <a href="javascript: void(0)" class="js-set-display grid" id="grid" > Gridview </a> </li>

JQUERY

 function set_display_type( type ) {
   if ( type == 'grid' ) {
     $( '.js-set-display.list' ).removeClass( 'active' );
     $( '.js-set-display.grid' ).addClass( 'active' );
     $( '.content-inner' ).attr({ 'class' : 'container content-inner gridview' });
     var view = 'gridview';
     $.post( 'library/fx.behaviour.php' , { setdisplay: view });
   }
   if ( type == 'list' ) {
     $( '.js-set-display.grid' ).removeClass( 'active' );
     $( '.js-set-display.list' ).addClass( 'active' );
     $( '.content-inner' ).attr({ 'class' : 'container content-inner listview' });
     var view = 'listview';
     $.post( 'library/fx.behaviour.php' , { setdisplay: view });
   }
 }

und meine PHP in fx.behaviour.php

$_SESSION[ 'display' ] = 'listview'; //set default
if ( $_POST[ 'setdisplay' ] != '' ) {
  $view = $_POST[ 'setdisplay' ];
  $_SESSION[ 'display' ] = $view;
}

Kurz: die sessionvariable nicht aktualisieren, nach dem Klick auf die url und übergibt den Wert durch jquery an php.

  • und versuchen, unset Ihre $_SESSION-variable setzen, bevor es wieder
  • ich denke, das ist, wo mein problem ist. die Variablen sind nicht erhalten in php. wenn ich versuchen würde, nur das zu tun, $_SESSION[ 'Anzeige' ] = $_POST[ 'setdisplay' ]; nichts ändert sich. aber die Standard-Einstellung wie oben beschrieben arbeitet
  • versuchen Sie, print_r($_POST) in der php um zu sehen, was dein post-array hat
  • es druckt ein leeres array. also das ist klar 🙂 ich habe versucht, die Weitergabe der Variablen durch $.ajax-Aufruf, aber gleiche Ergebnis
  • und wenn Sie nicht erhalten, jede variable überprüfen Sie Ihren Pfad auf jQuery, denken Sie daran, wenn die php Datei in einen Ordner außerhalb Sie jQuery Ausführung-Datei, die Sie hinzufügen müssen ../ am Anfang Ihrer php Datei-Pfad an jQuery $.post() definition
  • wie $.post( '../library/fx.behaviour.php' , { setdisplay: view });
  • jquery-Datei im assets/script/ php-Datei in library/ habe versucht, den Pfad als die ganze url ein, aber hat nicht funktioniert
  • prüfen Sie, ob Ihr jquery variable view mit alert(view); nach jedem var view = ''; variable definition
  • immer den richtigen Wert in der Warnung
  • ok, also dein problem ist der Weg
  • Das denke ich auch. Ich entfernte meine htaccess aus dem Verzeichnis, dachte, es könnte etwas damit zu tun haben Einschränkungen in der rewriterule, aber keine änderung. Im mit Sie den vollständigen Pfad zu der Datei, die jetzt in die jquery ( www. someurl .nl/ ), klebte es in die browser, um es zu überprüfen und es arbeiten dort
  • versuchte es mit einem ajax-Aufruf von php wieder bekam eine Fehlermeldung: Ursprungs-URL ist nicht erlaubt, Access-Control-Allow-Origin.

InformationsquelleAutor Nogzoiets | 2013-04-29
Schreibe einen Kommentar