2014-01-25 2 views
0

Я использую окно подтверждения javascript с кнопкой отправки, которая вызывает функцию javascript, как показано. Внутри функции я устанавливаю переменную сеанса PHP (, я не знаю, можно ли ее сделать так) .ieМанипуляция переменной PHP внутри цикла Javascript

<input type="submit" name="delete" value="Delete Album" onclick="**cdelete()**"> 

Функция javscript является:

<script type="text/javascript"> 
function cdelete(){ 
var f=confirm("Are you sure you want to delete this Album?"); 
if(f==true) 
{ 
    <?php $_SESSION['temp']=25;?> 
} 
else if(f == false) 
{ 
    <?php $_SESSION['temp']=45;?> 
} 
} 
</script> 

Но проблема в том, что переменная сеанса всегда принимает значение 45.ie значение при е == ложь даже если я нажмите кнопку ОК ИЭ даже если поле подтверждения возвращает f как true.

Любая помощь ??

+1

Вы не можете сделать это таким образом. Вы должны использовать _Ajax_. – undefined

+0

, если это невозможно, то почему оно берет второе значение только ... оно должно быть пустым тогда? Путать, поэтому. – Ankur

+0

Представьте код, как будто вокруг него нет Javascript (так как это делает PHP), и вы остаетесь с двумя присваиваниями '$ _SESSION ['temp']', и останется только второй, потому что он переопределяет первый. – Deryck

ответ

0

Проблема в том, что PHP-код выполняется на стороне сервера, а JavaScript - на стороне клиента. Другими словами, PHP выполняется на веб-сервере, и полученная веб-страница (без какого-либо оставленного в нем PHP) затем передается в браузер.

Происходит то, что весь PHP в вашем документе анализируется и выполняется, а затем полученная веб-страница отправляется в веб-браузер клиента, где выполняется JavaScript. Итак, ваши две строки PHP выполняются на сервере (сначала установите $_SESSION['temp'] на 25, а затем на 45), а затем страница (без какого-либо оставленного в ней PHP) передается клиенту. Если вы просмотрите источник страницы в своем веб-браузере, вы заметите, что кода PHP нет, а тела условных обозначений пусты.

Существует несколько способов сделать то, что вас интересует; AJAX будет хорошим вариантом.

0

PHP - это серверный язык. Вам придется использовать Asynchronous Javascript и Xml, также известный как AJAX для выполнения кода PHP. jQuery имеет очень простую в использовании функцию запроса AJAX. Вам стоит это увидеть. http://api.jquery.com/jquery.ajax/

0

PHP разобран до Javascript поэтому логика Javascript, которую вы пытаетесь использовать, даже не видна PHP.

Вы можете использовать файлы cookie для этой ситуации, если хотите получить доступ как от Javascript, так и от PHP, но все, что было изменено в режиме реального времени в браузере, должно быть отправлено асинхронно с использованием AJAX для регистрации на сервере загрузка следующей страницы.

0

PHP - это сценарий на стороне сервера. Где Javasript - клиентская сторона.

Ваш код PHP выполняется раньше всего.

Так, глядя технически, это как ваш код запускается на выполнение:

<?php 
    $_SESSION['temp'] = 25; 
    $_SESSION['temp'] = 45; 
?> 

<script type="text/javascript"> 
function cdelete(){ 
    var f=confirm("Are you sure you want to delete this Album?"); 
    if(f==true) { } 
    else if(f == false) { } 
} 
</script> 

Вам нужно реализовать AJAX, чтобы установить сеанс, основанный на JS. Вызовите php-скрипт через AJAX, который установит ваши переменные сеанса.

0

Все переменные php установлены на стороне сервера. Поэтому, чтобы установить переменную php, вам нужно будет сделать запрос на сервер (возможно, с помощью ajax). Вы можете получить доступ к значению PHP переменных (что уже установлен) в following way:

<?php 
    $simple = 'simple string'; 
    $complex = array('more', 'complex', 'object', array('foo', 'bar')); 
?> 
<script type="text/javascript"> 
    var simple = '<?php echo $simple; ?>'; 
    var complex = <?php echo json_encode($complex); ?>; 
</script> 
Смежные вопросы