2013-08-29 3 views
0

Не удается передать переменный PHP сеанс строке переменной JavaScriptне может передать PHP переменную сеанса в строку переменной JavaScript

Хотя $ _SESSION [ «Id»] переменные существует, то Javascript не может, кажется, довести его, по крайней мере с этим синтаксисом:

КОД

<?php session_start(); ?> 

<script> 
var a = "<?php echo $_SESSION['Id']; ?>"; 
alert(a); 
</script> 
+1

Что вы получаете, когда вы '' var_dump' $ _SESSION'? – Neal

+0

Можете ли вы разместить свой Javascript-код? Нам нужно понять, как вы пытаетесь получить эту ценность. – DeeDee

+2

Индексы массива PHP чувствительны к регистру. Должен ли Id быть строчным, как id? –

ответ

1

Во-первых, как комментарии упоминали, убедитесь, что вы используете правильный случай идентификатора, то ли это id или Id.

Во-вторых, попробуйте использовать json_encode, чтобы преобразовать его в javascript. Нет необходимости в "":

var a = <?php echo json_encode($_SESSION['Id']); ?>; 
+0

Спасибо, json_encode заработал! @BrianPhillips –

1

Попробуйте посмотреть, если переменная $ _SESSION [ 'Id'] существует и имеет значение,

<?php 
    session_start(); 

    print_r($_SESSION); 
?> 

<script type="text/javascript"> 
    var a = "<?php echo $_SESSION['Id']; ?>"; 
    alert(a); 
</script> 
2

Ваш синтаксис выглядит отлично. Что произойдет, если вы напишете это?

<?php 
php session_start(); 

echo '<div style="padding:30px; background-color:#ffffff;"><pre>'.print_r($_SESSION, true).'</pre></div>'; 

?> 

<script> 
var a = "<?php echo $_SESSION['Id']; ?>"; 
alert(a); 
</script> 

Если это не сработает, то попробуйте вручную установив идентификатор перед эхо

<?php 
php session_start(); 

$_SESSION['Id'] = 'AN ID!!!'; 

echo '<div style="padding:30px; background-color:#ffffff;"><pre>'.print_r($_SESSION, true).'</pre></div>'; 

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