2016-08-01 28 views
-2

他のページから入力値を取得したいのですが、なぜそれが機能しないのですか?ここで他のページから入力値を取得できません

はコードです:

ページ1:ボタンクリックで

<h1 align="center"> 
    <form name="form" action="" method="get"> 
     <input type="text" name="wonorlose" id="wonorlose" value="50"> 
    </form> 
</h1> 

<script> 
    function rollHead(){ 
     var die1 = document.getElementById("die1"); 
     var status = document.getElementById("status"); 
     var d1 = Math.floor(Math.random() * 2) + 1; 
     if(d1 == 1) 
     { 
      die1.innerHTML = "You lose!"; 
      fliped.innerHTML = "Fliped Tail!"; 
      var getsession = new XMLHttpRequest(); 
      getsession.open('POST','getsession.php',true); 
      getsession.send(); 
      var ajax = new XMLHttpRequest(); 
      ajax.open('POST','lose.php',true); 
      ajax.send(); 
     } 
     else if (d1 == 2) 
     { 
      die1.innerHTML = "You won!"; 
      fliped.innerHTML = "Fliped Head!"; 
      var getsession = new XMLHttpRequest(); 
      getsession.open('POST','getsession.php',true); 
      getsession.send(); 
      var ajax = new XMLHttpRequest(); 
      ajax.open('POST','won.php',true); 
      ajax.send(); 
     } 
    } 
</script> 

ページajax.php:

<?php 
    session_start(); 
    include_once 'dbconnect.php'; 

    if(!isset($_SESSION['user'])) 
    { 
     header("Location: /manopuslapis/index.php"); 
    } 
    $res=mysql_query("SELECT * FROM users WHERE user_id=".$_SESSION['user']); 
    $userRow=mysql_fetch_array($res); 

    $_SESSION['wonorlose'] = $wonorlose; 
    echo $wonorlose; 
    mysql_query("UPDATE `users` SET credits=credits+'$wonorlose' WHERE user_id=".$_SESSION['user']); 
?> 

ページgetsession.php :

<?php 
    session_start(); 
    include_once 'dbconnect.php'; 

    if(!isset($_SESSION['user'])) 
    { 
    header("Location: /manopuslapis/index.php"); 
    } 
    $res=mysql_query("SELECT * FROM users WHERE user_id=".$_SESSION['user']); 
    $userRow=mysql_fetch_array($res); 

    $_SESSION['wonorlose'] = $_GET["wonorlose"]; 
?> 

P.Sロールシステムが動作し、メッセージが勝ったり、失われたりしますが、データベースに何も起こりません。私がページ2を$winorloseに変更すると、それは機能します。

セッションに問題がある可能性があります。 PHPは、ブラウザ上のHTML構文解析時に実行されるため

<script> 
function rollHead(){ 
    ..... 
    <?php 
    $_SESSION['wonorlose'] = $_GET["wonorlose"]; 
    ?> 
...... 
} 

+3

セッションを開始しましたか? –

+0

javascriptとPHPを混在させることはできません。 PHPがページがロードされる前に実行され、javascriptが実行されます。セッションを更新したい場合は、PHPページにajax呼び出しを送る必要があります。 – aynber

+0

'money = money + '$ wonorose'''は少なくとも' money = money +' "でなければなりません。$ wonorlose。" ''でも、まだ悪いです... – eisbehr

答えて

-1

は、あなたがこのようなセッションを作成することはできません。この

session_start(); 
$_SESSION['wonorlose'] = $wonorlose; 
echo $wonorlose; 
mysql_query("UPDATE `users` SET money=money+'$wonorlose' WHERE user_id=".$_SESSION['user']); 
+0

私はすでにセッションを開始しました。私はページ2の完全なコードを投稿していません –

+0

この '' UPDATEユーザーのSET money = money + $ wonorloseどこuser_id = "。$ _ SESSION ['user']の結果を返しますか? – paranoid

+0

私がmysql_queryを変更した場合( "UPDATE'ユーザ 'SET money = money + '$ wonorlose' WHERE user_id ="。$ _ SESSION ['user']); $ _SESSION ['user']);それは動作し、+10の金額を追加します –

0

を試してみてください。技術的には、 "wonorlose"という名前で保存されたセッションはありません。

この場合、セッションを作成するにはajaxコールを作成し、セッションを作成するには別の呼び出しを行う必要があります。

+0

を調べますが、この機能を持つ他のページを作成すると、$ _SESSION ['wonorlose' ] = $ _GET ["wonorlose"];これはまだ1ページ目であるため、varriable値を得る方法 –

+0

セッションを作成するためにajax呼び出しを行う必要があります。$ _SESSION [場合 (ISSET($ _ SESSION [ 'ユーザー'; –

+0

は、私はこれを作成し、私が にsession_start()はPHP

関連する問題