Tatsächliche Anzeigegröße von Bild

Naja, eigentlich war mir klar, was sich jetzt bestätigt hat - daran liegt es nicht, denn am Anfang hatte ich nur

.attr('src');

geändert und nicht die Variabelbezeichnungen, somit hätte es ja funktionieren müssen. Okay, jetzt wo ich die Hälfte umbenannt habe hätte es eine Fehlerquelle sein können. Ich benutze Firefox mit Firebug addon (habs halt zuvor nie für JS Geschichten genutzt weil ich damit wenig am Hut habe).
 
Lies mal mein Editiertes bitte im vorrigen Beitrag. Jetzt müsste man halt wissen wo dieser Code herkommt. Vielleicht schmeisst den Funpic automatisch mit rein.
du könntest auch mal die "data"-Variable umbenennen, vielleicht liegts da dran.
In der Konsole kommt der Request zumindest richtig an.
 
Ich habe keine Ahnung mehr. Also ich binde den Code nicht ein. Aber ich kann auch nicht überprüfen obs an der J-Query Einbindung liegt, denn wenn ich die rausnehme, dann kann ich natürlich kein alert mehr in einem $.post Befehl auslösen, da dieser Befehl ja nur mit der Library nutzbar ist.

edit: habe jetzt mal das array in der functions.php anders beschrieben und es dann gleich ausgegeben:

$img = array(
'height' => $_POST['height'],
'width' => $_POST['width'],
'src' => $_POST['src']);

print_r($img);

wenn ich dann in der index das alert lasse gibt er mit das array mit den richtigen werten PLUS den google js von vorhin aus.

SECOND EDIT:

Okay ich habs. Ich weiß nicht warum, aber irgendwie bringt es die Rückgabe des Wertes mit

return true;

nicht. Ich habe dann mal versucht eine Ausgabe zu machen also im Prinzip echo 'true' und habe dann in $.post nicht mehr daten == true sondern nur noch daten = true angegeben und zack ist die klasse zugewiesen :)
Kann ich noch irgendwie das ganze als Boolean machen? Ich meine es ist zwar nicht soo wichtig, da es funktioniert, aber irgendwie muss ich doch auch aus PHP heraus den Boolean Wert True oder False an die JS Variabel "daten" zurück geben können oder?
 
Zuletzt bearbeitet:
Du weist aber in diesem Fall nur der Variablen "data" den Wert "true" zu, also geht es so auch nicht. Man kann als weiteren Parameter dem $.post noch den Datentyp welcher zurückgegeben wird mitgeben, ob allerdings boolean unterstützt weis ich nicht.
 
Ach so ein Müll, so lang ich nicht weiß wo das herkommt, kann ich auch nicht dagegen machen. Die Variable wird immer den ganzen Müll beinhalten und so kann ich ja kein true oder false abfragen. Ich frage mich nur warum das selbst dann noch in der variabel steht, wenn ich den name der variable ändere!? Es steht immer nach der Ausgabe welche ich in der functions.php an verschiedenen stellen veranlasst habe. Wie kann das sein? Kann ich die Variable nicht vor weiterem Beschreiben schützen :D ?

EDIT
Auch nach Einbindung von jQuery vom eingenen Webspace ändert sich daran nichts. Die Sache ist eben, dass es ja auch dann möglich sein müsste, wenn jemand wirklich Google Analytics nutzt (sieht so aus als ob es Google Analytics Code wäre).

Kann ich nicht irgendwie Untervariablen bilden zur data variable? Also so etwas wie ein PHP Array nur eben in JavaScript - in der Hoffnung, dass das dann wirklich leer ist und nur der Wert steht den ich aus PHP übergebe: Was natürlich voraussetzt dass ich diese Untervariable auch von dem PHP Script aus beschreiben kann.
 
Zuletzt bearbeitet von einem Moderator:
Sieht so aus als ob das von Funpic kommt.
Den Return umbiegen ist leider nicht möglich, aber man könnte noch versuchen es als JSON zurück zu geben und den Return dann dementsprechend filtern.

Code:
$.post('datei.php', {var1: 'wert1, var2: 'wert2}, function(data){
    alert(data);
}, 'json');

Und in der PHP-Datei ein Json-zurückgeben mit dem Wert.
 
Oh du bist so klasse und so geduldig :) dafür erstmal meinen Dank - ich habe es jetzt auf den Server geladen und zack funktioniert es. Vielleicht hast du auch noch einen Gedankenanstoß für eine weitere Problematik. Ich will, dass der Link immer dann gar nicht ausgegeben wird, wenn die Klasse lightbox nicht zugewiesen ist. Ich wollte das eigentlich machen, indem in der klasse detaillink ein

display: none;

und zusätzlich der Klasse lightbox ein

display: inline !important;

gebe. Funktioniert soweit auch, nur dass er leider das Bild innerhalb des a-Tags auch nicht anzeigt, solange der a-Tag nur die Klasse detaillink mit display: none; hat, auch wenn ich dem Bild selbst ein display: inline zuweise.

Meine Idee wäre jetzt das boolean true oder false aus der jquery $.post abfrage die du mir gezeigt hast in eine globale php variable zu schreiben und anhand dieser den link via php echo auszugeben NUR wenn diese boolean true ist. Aber wie kann ich diese Variable in eine PHP Variable bekommen. Hast du da eine Idee - oder einen anderen Ansatz?
 
Diese Variable kannst du nicht in eine PHP-Variable schreiben, da PHP vor JS ausgeführt wird.
Du könntest allerdings den link komplett entfernen und je nach dem was eben vom AJAx zurückkommt mit jQuery den Link hinzufügen, zb mit der Funktion $.wrap

Code:
$('img#ID').wrap('<a href="test.jpg">Foo</a>');
 
Das müsste ich ja wieder mit einem $.post machen, oder? Dann könnte ich ja die letzte $.post komplett weglassen und einfach folgendes machen:

Code:
$.post('./functions.php', {height: imgHeight, width: imgWidth, src: imgSrc}, function(daten){
      if(daten == true){ $('img.detailbild').wrap('<a href="#" class="detaillink lightbox"></a>') };

So wäre das für mich logisch, aber das Problem ist, dass ich ja nur einen Wert zurück geben kann.Wenn ich aber den Kompletten a-Tag in dem wrap() neu schreiben muss, dann brauche ich ja mindestens noch den Pfad zum Bild als zusätzliche variable zurück um den href zum Bild angeben zu können.

EDIT:
Ich habe es geschafft ^^
Code:
  <script type="text/javascript">     
  $(document).ready(function(){
    var imgWidth  = $('img.detailbild').attr('width');
    var imgHeight = $('img.detailbild').attr('height');
    var imgSrc   = $('img.detailbild').attr('src');
   

    $.post('./functions.php', {height: imgHeight, width: imgWidth, src: imgSrc}, function(daten){
      if(daten == true){ $('img.detailbild').wrap('<a href="' + imgSrc + '" class="detaillink lightbox"></a>');  };
    });
  });
  </script>
 
Zuletzt bearbeitet:
Du hast doch in der Variable den Pfad in "imgSrc" stehen, den kannste doch zerpflücken und verwenden. Ansonsten wenn du dir ja eh schon ein JSON-Object zurückgibst, dann kannste auch aus der PHP-Funktion raus gleich mitgeben. ERstellst dir ein Array in deiner Funktion ala:
PHP:
$array = array(
'imgSrc' => $pfad,
'return' => true
);

return json_encode($array);

Dann hast du es wieder nach dem AJAX-Request in der Variable "data" stehen.
 
Zurück