Pregunta

Esta es una pregunta de dos partes, pero yo quiero para asegurarse de que el primero es en realidad alcanzable.

En primer lugar, ¿puede obtener las variables de acceso establecido por img src? Estoy intentando jQuery, incluyendo MySQL ACTUALIZACIÓN etc, pero esto lo que necesitaba para asegurarse de que funcionaría?

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

El jQuery entonces tendría algo similar a:

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

espero que sea obvio, básicamente, tengo una imagen, si es "abierta" se establece en 1, cuando se hace clic en él los cambios de opacidad, pero también sería enviar una consulta a mi update.php.

Yo sé dónde están los errores en esta forma, ya no sé cómo solucionarlos. # 1 = variables en el img src (no sé si puedo ponerlos en el lugar href?), y el segundo es el $ ( '# id') y $ ( '# abierta') no creo que son correcta, pero no sé qué hay que cambiar a cualquiera.

Cualquier ayuda sería muy apreciada.

Phillip.

ACTUALIZACIÓN: Después de la lectura de Otars contestan, pensé que había una mejor añadir el nuevo código completo: cómo las imágenes han de estar donde están ...

Gracias. Debido a que estas imágenes se generan a través de un bucle for () (PHP), es que va a tener un efecto en cómo va a funcionar este código?

<?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
  */

  }

?>
¿Fue útil?

Solución

De todos modos la imagen tiene que ser un script PHP ...

pasar parámetros llegar a ella, hacer lo que quiera en el guión y luego enviar la imagen como esta:

archivo de ejemplo de Let se llama 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');

?>

A continuación, utilizar de esta manera: <img src="image.php?test=value">

Se va a llamar el script PHP primero y luego mostrar la imagen.

Otros consejos

Lo siento, no entiendo exactamente lo que su tratando de hacer, pero creo que esto podría ayudar. Puede almacenar el estado de las imágenes "abierta" como una variable dentro de $ (function () {} ..). A continuación, será capaz de obtener y establecer que el valor de la variable desde el interior de su evento clic.

$(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?
        } 
    });
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top