2014-04-29 74 views
0

我正在爲一個任務開發一個PHP「交互式文本遊戲」。將php會話值設置爲文本框的值

在我的程序中,提示用戶輸入信息(字符名稱等)到各種文本框中,隨着用戶完成以前的文本字段,這些文本框會一個接一個出現。

我想要做的是獲取文本框(用戶輸入)的值並將其存儲在PHP會話中。我知道我會想要使用AJAX來動態獲取文本值。

我不想先點擊一個「提交」按鈕,只要用戶按下輸入或點擊開箱即可存儲該值。

這裏是我到目前爲止的代碼示例,不包括不必要的行,如包括ajax/stylesheets /等。

這部分代碼,即$('input').keypress方法,應該從文本字段中獲得文本,並使用"#name",並將其放在某處的某個PHP代碼中?我非常新的PHP和JavaScript :(

<?php 
    session_start(); 
    $_SESSION['name']; 
?> 
<html> 
    <head> 
     <script> 
      $(document).ready(function() { 
       $('input').focus(function() { 
        $(this).val(""); 
        $('input').keypress(function(event) 
        //.focusout(function() 
        { 
         if (event.which === 13) { 
          $(this).parent().next('div.sub-container').show(); 
          var xmlhttp = new XMLHttpRequest(); 
          xmlhttp.onreadystatechange = function() { 
           if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
            document.getElementById("name").innerHTML = xmlhttp.responseText; 
            alert(xmlhttp.responseText); 
           } 
          } 
          xmlhttp.open("GET", "globals.php?q=" + $(this).val(), true); 
          xmlhttp.send(); 
         } 
        }); 
        $('input').focusout(function() { 
         $(this).parent().next('div.sub-container').show(); 
        }); 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <div class="container"> 
      <form action="" method="get"> 
       <div class="sub-container-init"> 
        <p class = "text">Like all good stories, we need a compelling hero. Someone with a nice-sounding name. Have anything good?</p> 
        <input id="name" name="name" value="Name" /> 
       </div> 
       <input type="submit" value="Submit" /> 
      </form> 
     </div> 
    </body> 
</html> 

這是globals.php單獨的頁面。理想的情況下,下面的PHP會從文本字段中獲得的文本,並保存在我可以訪問會話從其他網頁

<?php 
$q=$_REQUEST["q"]; 
echo $q; 
?> 

摘要:如何從"#name"文本值存儲在,我可以訪問同一頁面後在PHP會議

謝謝!

+1

旁註:'session_start();'需要在使用會話的所有文件中。你沒有在你的第二部分代碼中提及/顯示它。 –

+0

哦!謝謝!我會補充一點。我假設他們會參考同一個會話並訪問相同的變量? – 13rave

+1

不客氣。是的,如果在兩個文件中使用相同的會話名稱。 –

回答

0

使用session_start();在開始頁面您需要使用$ _SESSION ['name']; 請注意,在session_start之前你不能有任何迴應,否則你會得到一個錯誤

相關問題