【问题标题】:Can you request/get variables from img src?您可以从 img src 请求/获取变量吗?
【发布时间】:2011-04-02 00:05:46
【问题描述】:

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

首先,你能得到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
  */

  }

?>

【问题讨论】:

    标签: jquery variables post image src


    【解决方案1】:

    无论如何,您的图像必须是 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');
    
    ?>
    

    然后像这样使用它:&lt;img src="image.php?test=value"&gt;

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

    【讨论】:

    • 谢谢,这让我可以向图像添加变量。感谢您的帮助。
    • 如果您需要来自 PHP 文件的 10 张图片怎么办? (您应该对 PHP 和 JQuery 脚本应用哪些更改才能从 php 文件中获取 10 张图像?)
    • @Shadi 将图像 URL 作为脚本参数传递 &lt;img src="image.php?img=/path/to/your/image.jpg&amp;test=value"&gt; 并像这样修改重定向标头:header('Location: ' . $_GET['img']);。请确保您验证/保护/转义传递的参数...
    • 谢谢,但是使用这个解决方案,'image.php' 再次只向 html 文件发送一个图像。我需要 php 发送多个。类似于: header('位置:/path/to/your/image1.jpg'); header('位置:/path/to/your/image2.jpg'); header('位置:/path/to/your/image3.jpg');然后在 html 中:
    • @Shadi 您如何想象在一个&lt;img&gt; 标签中显示多张图像?这与 HTML 的可能性相差甚远......为什么需要使用这样的东西?
    【解决方案2】:

    抱歉,我不完全了解您要做什么,但认为这可能会有所帮助。您可以将图像“打开”状态存储为 $(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?
            } 
        });
    });
    

    【讨论】:

    • 我不懂语言,不知道这是否可行……哈哈。或者如何实现。谢谢您的意见! :D
    • 您能否再解释一下您的答案?例如,php 文件的内容和success:function() 是什么?提前致谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 2013-04-17
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    相关资源
    最近更新 更多