2013-04-07 229 views
-2
<script language="JavaScript" type="text/javascript"> 
     function set(n) { 

     alert(n); 
     document.forms[0].submit();  
     } 
    </script> 


$a='A0001'; 

printf('<input type="button" value="Delete" onclick="set(%g);"/>', $a); 
+0

我想獲得$ a值...但值顯示0 ....有人可以幫助我解決這個錯誤? – cck7448 2013-04-07 09:31:09

回答

2

%g是用於數字,您的數據包含一個數字,但也包含字母,因此您需要一個字符串。改爲使用%s

那麼PHP將輸出:

<input type="button" value="Delete" onclick="set(A0001);"/> 

你不變量稱爲A0001,所以你是路過undefined

大概你想把這個值作爲一個字符串,所以需要引用它。 json_encode函數會將數據結構轉換爲適合傳遞給JavaScript的東西。函數htmlspecialchars將使一些文本適合放置在HTML屬性值中。

printf('<input type="button" value="Delete" onclick="set(%s);"/>', htmlspecialchars(json_encode($a))); 
+0

或者,只需在set() - set(「A0001」)中添加引號 – Ashley 2013-04-07 09:35:15

+0

@Ashley - 作爲這組特定輸入數據的手動解決方案,這將起作用(儘管它仍然需要轉換爲「"」一個HTML屬性值由'''字符分隔)我喜歡robuster,通用的解決方案,儘可能 – Quentin 2013-04-07 09:36:11

+0

非常感謝你,我已經修復了它 – cck7448 2013-04-07 10:08:48

0

您需要使用%s作爲變量包含數字以及字母數字字符。

關注這個代碼:

<script language="JavaScript" type="text/javascript"> 
    function set(n) { 
    alert(n); 
    document.forms[0].submit();  
    } 
</script> 

<?php 
$a='A0001'; 
printf('<input type="button" value="Delete" onclick="set(\'%s\');"/>', $a); 
?> 

這是一個測試版本。

+0

非常感謝你我修復了它 – cck7448 2013-04-07 09:56:27

+0

很高興知道它的工作原理,你可以標記我接受的答案是:-) – Harpreet 2013-04-07 10:02:43