2 Stimmen

Können Sie Variablen von img src anfordern/abrufen?

Dies ist eine zweiteilige Frage, aber ich möchte sicherstellen, dass der erste Teil auch tatsächlich realisierbar ist.

Erstens, können Sie Zugriffsvariablen durch img src gesetzt bekommen? Ich versuche, jQuery, einschließlich MySQL UPDATE usw., aber das musste ich sicherstellen, würde funktionieren?

<a href="#" class="chnge"><img src="filename.jpg?id=1&open=1" /></a>

Die jQuery würde dann etwas ähnliches haben:

      $("img#chnge").click(function() {

        var id      = $('#id').attr('value');
        var open    = $('#open').attr('value');
            $.ajax({
                type: "POST",
                url: "update.php",
                data: "id="+ id +"& open="+ open,
                success: function(){
                    $('img#chnge').fadeTo('slow',0.4);

                }
            });
        return false;
        });

Ich hoffe, es ist offensichtlich, im Grunde habe ich ein Bild, wenn es "offen" auf 1 gesetzt ist, wenn Sie darauf klicken die Deckkraft ändert, aber es würde auch eine Abfrage an meine update.php senden.

Ich weiß, wo die Fehler in diesem Formular sind, ich weiß nur nicht, wie ich sie beheben kann. #1 = Variablen in der img src (ich weiß nicht, wenn ich sie in der href stattdessen setzen kann?), und die 2. ist die $('#id') und $('#open') Ich glaube nicht, sind richtig, aber ich weiß nicht, was sie entweder zu ändern.

Jede Hilfe wäre sehr willkommen.

Phillip.

UPDATE: Nachdem ich Otars Antwort gelesen habe, dachte ich, dass ich besser den vollständigen Code hinzufügen sollte: wie die Bilder dort sein sollen, wo sie sind...

Dankeschön. Da diese Bilder durch eine for()-Schleife (php) generiert werden, wird das einen Einfluss darauf haben, wie dieser Code funktionieren wird?

<?php
$query = mysql_query("SELECT * FROM catalogue");
$num = mysql_num_rows($query);

for ($x=1;$x<=$num;$x++) {

  $row = mysql_fetch_row($query);

  ?>

  <a href="#" id="chngeHref" /><img src="<?php echo $row[2]; ?>?id=<?php echo $row[0]; ?>&open=<?php echo $row[1]; ?>" id="chnge" /></a>

<?php

  /* row[0] = id 
     row[1] = open (1 or 0)
     row[2] = image url
  */

  }

?>

2voto

Otar Punkte 2539

Auf jeden Fall muss Ihr Bild ein PHP-Skript sein...

Übergeben Sie dem Skript GET-Parameter, tun Sie, was immer Sie wollen, und geben Sie dann das Bild wie folgt aus:

Nehmen wir an, die Datei heißt image.php

<?php

    $par = $_GET['test'];

    // Do some PHP related job here

    // Load the image
    header('Content-Type: image/jpeg');
    header('Location: /path/to/your/image.jpg');

?>

Dann verwenden Sie es so: <img src="image.php?test=value">

Es wird zuerst das PHP-Skript aufrufen und dann das Bild anzeigen.

0voto

tarn Punkte 2122

Tut mir leid, dass ich nicht genau verstehe, was Sie zu tun versuchen, aber ich denke, dies könnte helfen. Sie können den "offenen" Zustand des Bildes als Variable in $(function(){..}) speichern. Sie werden dann in der Lage sein, zu erhalten und setzen, dass Variable Wert aus Ihrem Klick-Ereignis.

$(function() {

    var open = false; // store the image state in the closure not global
    var id = .. 

    $(".chnge img").click(function() {
        if (!open) {
            // fade-in, post to server or whatever

            $.ajax({
                type: "POST",
                url: "update.php",
                data: "id="+ id +"& open="+ open,
                success: function(){
                    // handle response here.
                    // you can still access the open variable here!
                }
            }

            open = true; // want to update open?
        } 
    });
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X