2015-04-24 68 views
1
<script type="text/javascript"> 
    var int_val = 111; 
</script> 

<?php 
    $js_int_val_in_php ='<script>document.write(int_val);</script>'; 
    echo $js_int_val_in_php; // 111 
    echo '<br>'; 
    echo gettype($js_int_val_in_php); // string 
    // but I want it as an integer 
    // even settype(); does not help!! 
?> 

任何人都有什麼好主意我該如何傳遞js整數值作爲PHP中的整數?我喜歡jQuery,但在這種情況下,請不要jQuery建議。如何在PHP中以整數形式傳遞js整數值?

+2

你必須要麼提交一個表單,或發出一個ajax請求(即[XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest)) –

+0

您無法將java腳本變量值分配給php變量。這是因爲PHP是服務器端腳本語言,而javascrpt是客戶端。如果你需要php的JavaScript值來執行服務器端,那麼你可以使用ajax –

+1

歡迎來到SO。您可以施放該值。但是我認爲你對這應該如何工作有錯誤的想法,JavaScript在瀏覽器中執行而不是在PHP中執行。 – Twisty

回答

0

你混淆了客戶端變量服務器端變量,

您需要將數據發送到服務器,否則服務器只知道變量名,這是一個字符串

<script> 
var int_val=111; 
function doAjax() 
{ 
var xmlhttp; 
xmlhttp=new XMLHttpRequest(); 
xmlhttp.open("GET","index.php?v="+int_val,true); 
xmlhttp.send(); 
} 
</script> 
<a href="javascript:doAjax();">click here to send data to server</a> 
<?php 
$int_val='' 
if (isset($_GET['v'])) 
{$int_val=intval($_GET['v']);} 
//now you can access the `int_val` after the JS function ran 
?> 
0

我認爲,這個問題已經在這裏問:Unable to convert string to integer in PHP

如果你願意,你也可以看看PHP類型轉換這裏:http://php.net/manual/en/language.types.type-juggling.php#language.types.typecasting

也許有這樣的事情?

<script type="text/javascript"> var int_val = 111</script> 
<?php 
    $js_int_val_in_php = '<script>document.write(int_val);</script>'; 
    echo $js_int_val_in_php; // 111 
    echo '<br>'; 
    $toInt = (int) $js_int_val_in_php; 
    echo '<br>'; 
    echo gettype($toInt); // string 
?> 

我沒有測試過,但我敢肯定,鑄字應該做的伎倆,不要忘了看看我發來的網址第一

+0

總是一個快樂的人:) - 我會在我發佈之前測試下一次,但不是100%肯定 – TrojanMorse

+0

這隻顯示工作,你實際上並沒有對'int_val'進行類型轉換,而是試圖對字符串''。 '$ toInt'實際上等於0.嘗試做'var_dump($ toInt)'來查看。 –

+0

帕特里克,你是對的,它給我類型爲整數,但值爲零。與Torean的鏈接相同的問題 –