2010-03-03 150 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