[php,js] erledigt - Variable aus js in php verarbeiten

justme69

Im RL-Dauerstress
ID: 99452
L
25 April 2006
676
13
Servus zusammen,

ich habe in den Styles 2 Div-Bereiche definiert - Spalte1 und Spalte 2.
Beide Bereiche sind auf einer Seite vertreten.

In Spalte 1 zeige in ein paar Thumbnails.

Wie bekomme ich es ohne JS oder Frames hin, daß - wenn ein Thumb aus Spalte1 angeklickt wird, das große Bild in Spalte2 angezeigt wird ?
-- von mir aus mit Seite neuladen oder ähnlich - keine Ahnung im Moment.

Entweder ist das zu einfach - oder ich zu blöde ;)

Danke für Hinweise/Hilfen. :)


:arrow: EDIT: Erstes Problem erledigt, nun ein Neues, siehe Post #10
 
Zuletzt bearbeitet:
<a href="thumb1.htm"><img src="thumb1.jpg"></a> ?

ansonsten würd ich javascript vorschlagen aber das willst du ja nich.....

mfg
Samy
 
Was mir spontan einfällt (allerdings JS):

thumb2 den css-style display:hidden; geben und bei onclick auf thumb1 diesen display wieder überschreiben mit, ich glaube, visible.

Aber ohne JS fällt mir auch nix ein.

PlaciD
 
Mein erster Gedanke: Mit dem klick auf dem Thumbnail die gleiche Seite aufrufen und über die URL eine ID mitgeben, die dann in der zweiter Spalte über PHP ausgelesen wird und das passende Bild ausgegeben wird.
Nachteil: Die Seite müsste neuladen.
Schade das du es nicht mit JS lösen magst, man könnte doch sowas schön mit Ajax machen (?).
 
Nun, habe generell nix gegen JS - nur was ist mal wieder dann mit den Usern, die JS deaktiviert haben ? Die sehen dann gar nix...

Und auf einer Fotografen-Seite keine Bilder anschauen können - ist etwas dämlich ;)

Renegade's Ansatz ist da glaube ich bisher der zielführendste...
Danke für die Ideen, doch evtl. gibt's noch weitere Alternativen...
 
ajax braucht man doch nciht

loadimage(id){
img.src = "imagebig"+id+".jpg";
}

und mehr ist das doch nicht beim bild ncoh onclick="loadimage(XX)" und gut ist....

anosnsten einfach den bild als link....
 
:p und wenn du nen modrewrite (odda wie das heißt) auf thumb machst dann ist das auch nur 1 Seite....
ja so wies Renegade ausgedrückt hat passt es scho machst du eine Seite die du halt immer aufrufts mit einer anderen ID. und welche das Bild dann wechselt.


mfg
Samy
 
Für die User ohne aktives JavaScript gibt es eine einfache lösung in Deinem Fall. Da bei solchen Spielereien der Google Pagerank wurscht ist weil keine richtigen unterseiten sind kannst Du einfach folgendes machen.

HTML:
<a href="image.php?img=blume" onclick="loadimg('blume'); return false;"> <img src="images/blume.jpg" alt="Blume" height="90" width="90" /></a>

Wenn nun ein User den Link anklickt mit aktiven JS dann wird die funktion aufgerufen und ein false zurückgegeben damit der link nicht geöffnet wird vom Browser. Wenn kein aktives JS vorhanden ist wird logischerweise auch net fals zurückgegeben und der link wird ganz normal mit dem Browser verfolgt.

Ergo User mit JS haben es komfortabel, User ohne aktivem JS müssen halt die Seite neu laden.

Und zum einblenden würde ich net mit AJAX arbeiten oder hidden. Ich denke "innerhtml" tut es in dem Fall auch.

Hoffe damit mal wieder nach längerer Abwesenheit geholfen zu haben ;)

Btw.: Den ganzen link kann man loischerweise auch mit Spielereien wie mod_rewrite schicker gestalten. Aber vergess bitte nicht die Variable zu prüfen (Inhalt).
 
Das erste Problem ist behoben, ich habe mir selber ein kleiners gallery-script geschrieben.. soweit so gut...
im Zuge der Optimierung / benötigten Anwendung brauche ich den Inhalt einer
JS-Variabeln um sie mit php weiter verarbeiten zu können.

Das JS ermittelt mir die Bildschirmauflösung des Client und speichert sie in einer Varibeln. Diese würde ich gerne in PHP weiter nutzen...

:arrow: Wie kann ich das tun ? Das JS steht in einer eigenen Datei.
 
du kannst auch mit JS einen Cookie setzen die Werte da rein schreiben und den mit PHP auslesen.
 
Da ich session aktiviert habe - geht das auch mit sessions ?
session_register() innerhalb JS ?
Gibt's da ein Beispiel zum anschauen ?

Überleg mal:
Wo werden Sessions abgespeichert? Auf dem Server.
Wie willst du mittels Javascript auf dem Server Daten ablegen?

Cookies werden clientseitig gespeichert und beim HTTP-Request im Header dem Server mitgesendet.
 
Überleg mal:
Wo werden Sessions abgespeichert? Auf dem Server.
Wie willst du mittels Javascript auf dem Server Daten ablegen?

Cookies werden clientseitig gespeichert und beim HTTP-Request im Header dem Server mitgesendet.
Klingt logisch - Cookies sind aber auch nicht bei allen Usern aktiv...
Bleibt wohl nur der Request... Und wenn JS abgeschaltet ist - ein Standardwert...
JS Sessions und Coockies aktivieren ist mir für diese Aktion (Screen-Auflösung in PHP unterscheiden) doch überzogen...

hat jemand so'n Request als Beispiel ? Hab mit JS nicht soviel am Hut ;)
Ich möchte nur eine Variable an PHP zurückgeben...
 
Hehe.. danke für den Link, den hatte ich allerdings auch schon gefunden.. ich kapier's nicht...

Mein JS:
PHP:
var i=0;
var strDirPrefix="";
var nStyle=3;

var sx = screen.width;
if (sx >=  630) nStyle=3;
if (sx >=  790) nStyle=3;
if (sx >= 1000) nStyle=3;
if (sx >= 1200) nStyle=4;
if (sx >= 1550) nStyle=5;

for (i=0; i<jsLevel; i++) strDirPrefix = strDirPrefix + "../";

var strFileName = strDirPrefix + "devi_lib/styles00" + nStyle + ".css";
var shm = "<link href='" + strFileName + "' rel='stylesheet' type='text/css'/>";

document.write(shm);
Ermittelt mir die Screen-Auflösung und gibt mir das zu verwendende Stylesheet als Ergebnis zurück.
im aufrufenden php-file habe ich ein default Stylesheet definiert, daß bei eingeschaltetem JS von obigem Aufruf zusätzlich eingefügt und damit überschrieben wird.

Ich brauche einfach nur die Variable nStyle um sie in php weiter verarbeiten zu können - oder - wenn das (für mich) einfacher zu kapieren ist - welches Stylesheet (Name) verwendet wird.

Ich bastle nicht gern mit Sachen rum von denen ich null Plan habe - und verstehen würde ich es auch gern, wat dat Teil (XMLHttpRequest) macht / machen würde.
;)
 
An den Server senden - Der XmlHttp-Request wird dir da weiterhelfen ;)
Sehe ich das richtig - da wird ein Active-X aufgebaut ?
PHP:
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

Das ist ja noch wahrscheinlicher abgeschaltet als JS und Cookies...

Gibt's ne andere Möglichkeit ?
 
Zuletzt bearbeitet:
Also, hab's jetzt mit JS und Cookies gelöst...
und entsprechend Standard-Befüllung bei ausgeschaltetem JS oder Cookies...

Schade, daß Client-Daten nicht anders zu bekommen sind....

:arrow: erledigt... hab wieder was gelernt ;)