2015-04-24 6 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.как передать целочисленное значение js как целое в PHP?

+2

вы должны либо отправить форму, или сделать запрос ajax (т.е. [XMLHttpRequest] (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest)) –

+0

вы не можете присвоить значение переменной скрипта java переменной php. Это связано с тем, что PHP является языком сценариев на стороне сервера, а javascrpt - на стороне клиента. Если вам нужно значение JavaScript в php для выполнения на стороне сервера, вы можете использовать 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 
?> 

Я не проверял, но я уверен, что типажей должен сделать трюк, не забудьте взглянуть на URL я послал первый

+0

Всегда приятный человек :) - Я буду тестировать в следующий раз до того, как я опубликую, не был на 100% уверен – TrojanMorse

+0

Это только работает, вы на самом деле не приписываете 'int_val', вы пытаетесь ввести строку' '. '$ toInt' фактически равен 0. Попробуйте сделать' var_dump ($ toInt) ', чтобы видеть. –

+0

patrick, вы правы, он дает мне тип как целое, но значение равно нулю. такая же проблема, как ссылка Тореяна –

Смежные вопросы