2010-03-03 154 views
1

我是Jquery的新手。我有一个项目,有复选框,如果他们的状态改变,然后我更新一些SQL表。将PHP变量值传递给jquery函数

但我决定先从简单的事情,首先要了解它是如何工作...

所以,我想传递给jQuery的功能,一个PHP变量,如果一个复选框状态更改。

我有这样的代码:

<?php ?> 

<HTML> 
<HEAD> 
    <TITLE> New Document </TITLE> 
    <META NAME="Author" CONTENT=""> 
    <META NAME="Keywords" CONTENT=""> 
    <META NAME="Description" CONTENT=""> 
    <script type="text/javascript" src="jquery-1.4.2.js"></script> 
    <script type="text/javascript"> 
     function my_function(var mensagem_id) 
     { 
      alert("Sucesso, Mensagem nº: " + mensagem_id); 
     } 
    </script> 
</HEAD> 

<BODY> 
<?php 
    $mensagem_id = "3"; 
    echo $mensagem_id; 
?> 
    <input type='checkbox' name='lida' value='mensagem_id' onchange='my_function($mensagem_id)'/> 
</BODY> 
</HTML> 

但萤火我不断收到消息(函数创建my_function()没有定义)...

谁能帮助我?

+0

嗨,大家好, 我通过将“onchange”替换为“onclick”来解决了这个问题。 无论如何,感谢您的帮助! – lbramos 2010-03-03 13:16:08

回答

1

jQuery运行在客户端上,而PHP运行在服务器上。所以,没有办法将PHP变量传递给jQuery函数。你可以直接写的onchange回调:

<input type='checkbox' name='lida' value='mensagem_id' onchange='my_function(<?php 
    $mensagem_id = "3"; 
    echo $mensagem_id; 
?> 
)'/> 

还要注意的是,在jQuery的你应该避免设置活动这种方式和使用jQuery的事件,而不是:

$('#myinputid').change(function() { 
}); 

另一种方式将设置一个隐藏字段使用PHP变量并使用javascript/jQuery代码在客户端读取它。

+0

并且我可以将变量值传递给该jquery事件吗? – lbramos 2010-03-03 12:00:40

+0

是的,通过使用相同的技术 – kgiannakakis 2010-03-03 12:29:00

0

我觉得你不必使用var在你的函数参数...

+0

非常真实。参数不是声明变量的地方。它应该是(mensagem_id)。或者,更好的是,(mId)或其他简短的东西 - 您不需要声明它,只需在调用函数时传递它即可。 – 2010-03-03 11:43:46

+0

我试过,但仍然得到my_function()没有定义,消息:( – lbramos 2010-03-03 11:53:53

1

以“无功”,从函数定义了,并在电话onchange使用<?php echo?>周围$mensagem_id

但是你根本没有使用jQuery,只是简单的Javascript。

+0

我知道,它只是现在的JavaScript,但后来我想添加一些jquery的东西,但我需要从这里开始:) 我更新了代码你的建议: \t <脚本类型= “文本/ JavaScript的” SRC = “jQuery的1.4.2.js”> \t <脚本类型= “文本/ JavaScript的”> \t函数创建my_function (mensagem_id) \t \t { \t警报(“Sucesso,Mensagemnº:”+ mensagem_id); \t \t} \t <?php \t $ mensagem_id =“3”; \t echo $ mensagem_id; ? > 还是一样的错误 – lbramos 2010-03-03 11:52:59

+0

即代码对我来说工作正常 – 2010-03-03 13:00:54