2010-08-21 63 views
1

以下代码的工作原理尽我所知除了var tidvar open部分。他们被从图像HREF提交:jQuery从PHP传递变量到MySQL

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

这工作完全正常(输出功率为:??image.php URL = image.jpg的TID = 1

$("#chngeHref").click(function() { 

    var tid = $('tid').attr('value'); // VARIABLES DONT WORK 
    var open = $('open').attr('value'); // VARIABLES DONT WORK 

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

HTML代码,这是来自哪里& open = 1)。问题是我不认为我有var tid/open设置正确读取变量并将它们传递到我的mysql页面(我需要值来更新数据库)。我曾尝试过:

var tid  = $('tid').attr('value'); 
var tid  = $('.tid').attr('value'); 
var tid  = $('#tid').attr('value'); 

我只是不知道该如何工作。任何建议,非常感谢。菲利普。

菲利普。

回答

0

您需要解析的chngesrc属性和抢tid

var chnge = document.getElementById('chnge'); 
var tid = chnge.src.match(/&tid=([^&])/)[1]; 

同样的事情open

var chnge = document.getElementById('chnge'); 
var tid = chnge.src.match(/&open=([^&])/)[1]; 
+0

谢谢你......但没有第二个人现在刚刚重写第一个,因为他们在同一个var的? var chnge在两行中都是相同的,var tid是不同的,但是第二个会覆盖第一个? – 2010-08-22 13:51:11

1

我认为你能做的最好的事情是通过变量一个隐藏的领域,所以你可以很容易地访问信息。

类似的东西:

HTML

<input type="hidden" id="hfTid" value="<?php echo $row[0]; ?>" /> 
<input type="hidden" id="hfOpen" value="<?php echo $row[1]; ?>" /> 

jQuery的

$("#chngeHref").click(function() { 

    var tid = $('input#hfTid').val(); 
    var open = $('iput#hfOpen').val(); 

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

我会做这种方式。它更干净。

我很高兴如果帮助。

+0

谢谢你 - 这个阶段的问题是变量来自一个图像(image.php?url = image.jpg&id = 1&open = 1),所以没有形式的空间。我会同意你的方式是干净和简单的,如果那是我能够做到这一点的方式。因为我最终会有约。页面上有超过50张图片,我不想在页面上显示50张图片:) – 2010-08-22 13:53:37