2

这是一个由两部分组成的问题,但我想确保第一个问题实际上是可以实现的。

首先,你能得到img src设置的访问变量吗?我正在尝试 jQuery,包括 MySQL UPDATE 等,但是我需要确保它可以工作吗?

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

然后 jQuery 将具有类似于以下内容的内容:

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

我希望很明显,基本上,我有一个图像,如果它的“打开”设置为 1,当你点击它时,不透明度会改变,但它也会向我的 update.php 发送一个查询。

我知道这种形式的错误在哪里,我只是不知道如何解决它们。#1 = img src 中的变量(我不知道是否可以将它们放在 href 中?),第二个是 $('#id') 和 $('#open') 我不认为是正确,但我不知道将它们更改为什么。

任何帮助将不胜感激。

菲利普。

更新:在阅读了 Otars 的回复后,我想我最好添加完整的代码:图像如何在它们所在的位置......

谢谢。因为这些图像是通过 for() 循环 (php) 生成的,所以这会对代码的工作方式产生影响吗?

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

  }

?>
4

2 回答 2

2

无论如何,您的图像必须是 PHP 脚本...

将 GET 参数传递给它,在脚本中做任何你想做的事情,然后像这样输出图像:

假设文件被调用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');

?>

然后像这样使用它:<img src="image.php?test=value">

它会先调用 PHP 脚本,然后显示图像。

于 2010-08-21T08:44:18.220 回答
0

抱歉,我不完全了解您要做什么,但认为这可能会有所帮助。您可以将图像“打开”状态存储为 $(function(){..}) 中的变量。然后,您将能够从单击事件中获取和设置该变量值。

$(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?
        } 
    });
});
于 2010-08-21T08:52:08.217 回答