2014-07-22 5 views
0

У меня есть некоторые неявные функции PHP, которые должны быть вызваны для определенных фронтовых событий; таких как buttononclick s. Таким образом, это должно соответствующим образом изменить мою переменную PHP SESSION. Однако обе функции, setAlan() и setMark(), кажутся вызываемыми, даже если я просто хочу, чтобы первый выполнялся.Изменение переменных сеанса PHP с помощью JavaScript

<?php 
    session_start(); 

    function setAlan() { 
     $_SESSION['passed_user']='alan'; 
    } 
    function setMark() { 
     $_SESSION['passed_user']='mark'; 
    } 
?> 

<script> 
    function getAlan() { $(document.body).append('<?php setAlan(); ?>'); } 
    function getMark() { $(document.body).append('<?php setMark(); ?>'); } 
    function show() { alert(' <?php echo "{$_SESSION['passed_user']}" ?> '); } 
</script> 

<div class="pod"> 
    <div class="pod_title"><h2>Select a User</h2></div> 
    <div> 
     <input type="button" onclick="getAlan();" value="alan"> 
     <input type="button" onclick="getMark();" value="mark"> 
     <input type="button" onclick="show();" value="show"> 
    </div> 
</div> 

Я не понимаю, почему setMark() вызывается автоматически? По тому, что я написал, я считаю, что я только определяю функции PHP, а не называю их; Я использую JS для этого. Я что-то упускаю? Заранее спасибо!

+1

Вы должны смотреть, чтобы использовать Ajax. – Debflav

+0

PHP выполнен на стороне сервера. Добавление PHP на стороне клиента не будет работать. Для этого вам придется использовать 'ajax'. – DarkBee

+0

@DarkBee Умм, он работает, я верю. Я просто хочу реализовать условное, основанное на каждой из кнопок ... Любое решение для этого? – Jim22150

ответ

1

PHP выполняется с первой стороны сервера. После того, как PHP сделан, ваш браузер (клиент) получает результат, Javascript выполняется на клиенте, поэтому после завершения PHP.

Вы не можете смешивать яваскрипт и PHP, как вы сделали с:

<script> 
    function getAlan() { $(document.body).append('<?php setAlan(); ?>'); } 
    function getMark() { $(document.body).append('<?php setMark(); ?>'); } 
    function show() { alert(' <?php echo "{$_SESSION['passed_user']}" ?> '); } 
</script> 

Однако вы можете использовать Javascript, чтобы назвать некоторые стороне сервера PHP скрипт с помощью AJAX (Asynchronous JavaScript и XML).

http://www.w3schools.com/ajax/default.ASP

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