这是一个两部分问题,但我想确保第一个问题实际上是可以实现的。
首先,你能获得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
*/
}
?>
答案 0 :(得分: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脚本然后显示图像。
答案 1 :(得分: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?
}
});
});