2012-02-24 24 views
1

私はオンライン試験ツールをやっています。私はデータベース要求の数を最小限に抑えたい。だから、私は一度にテストのすべての質問を要求しています。この後、ユーザーが試したすべての質問とその回答を覚えておく必要があります。私の計画は、以下の行を試みた質問の色を変更するためには上記のコードでは、このjavascript変数をPHPセッション変数に割り当てる

$('input[type=radio]').click(function() 
{ 
    var id = ($(this).parent().attr('id')); 
    id = id.slice(4); 
    $('#nav'+id).css('color','red'); 
    <?php $_SESSION['ques['id']']= ?> $(this).val() <?php ;?> 
}); 

のようなPHPのセッション変数に答えを保存することです。

var id = ($(this).parent().attr('id')); 
    id = id.slice(4); 
    $('#nav'+id).css('color','red'); 

ここで、idは質問のIDです。 idはjavascriptの変数がここにあるので、問題は、私はまた、私は、次のかなり確信している、次のエラー

Parse error: syntax error, unexpected ';' in /var/www/sites/onlinetest/test.php on line #x 

を取得していていること

$_SESSION['ques['id']'] 

間違っています。私を助けてください。また、私は「セッション変数に保存する」以外の他のよりよい解決策が掲載されている場合感謝私がいくつかの隠しフォーム変数で

ソリューションストア、その後、我々はサーバー側のスクリプト言語に任意のクライアント側のスクリプト変数を取得することはありませんだと思う

+1

[PHPでJavaScriptを使用してセッション変数を設定](http://stackoverflow.com/questions/3590293/set-session-variable-using-javascript-in) -php) –

+0

これはまったく動作しません。 [AJAXリクエスト]が必要になります。(http://stackoverflow.com/search?q=%5Bjavascript%5D+php+session+variable+ajax&submit=search) –

+0

PHPはサーバーサイドで実行されます。それをあなたのjavascriptに含めると、javascriptがロード/実行される前に実行され、動作しません。 –

答えて

1

1にAJAXを使用してクリアしていても期待通りのコードは思わ

おかげ

0

フォームは、あなたがerrors.Soはjqueryの

+0

ユーザーがページを更新してすべてのデータが失われたように私はこれを行うことができません。 –

+0

私たちは、そのJavaScript値をいくつかのPHPページに渡し、その時にそのデータをセッションに保存することができます。 –

0

が動作しませんGETまたはPOST変数に取得することができ、時間を提出しますあなたの問題はclickブロックの最後の行にあります。私はあなたが何をしようとしているかは完全には分かっていませんが、<?php ; ?>があり、セミコロンがスクリプトの解析に失敗しています。最初の部分

<?php $_SESSION['ques['id']']= ?>

はどちらか何もしません。 JavaScriptの$(this).val()という値をPHP SESSIONグローバルに割り当てようとしているようですが、これはできません。セッションvarを更新するには、サーバーにAJAXコールバックを行う必要があります。 $_SESSION["$ques[id]"]

・ホープ、このことができます:そうのような配列をネストするとき

2)は、二重引用符を使用してください。

1

JSで回答を保存し、最後の質問に回答したときにサーバーに送信するだけです。

ここで配列に格納する本当に基本的な例です:

$.ajax({ 
    type: 'POST', 
    data: {answers : answers}, 
    url: '/path/myfile.php', 
    success: function(data) {}, 
    error: function() {} 
}); 

はPHPでそれをキャッチ:それをサーバー側の送信

var answers=[]; 

$('input[type=radio]').click(function() 
{ 
    var id = ($(this).parent().attr('id')); 
    id = id.slice(4); 
    $('#nav'+id).css('color','red'); 
    answers.push($(this).val()); 
}); 

if (isset($_POST['answers'])) { 
    $answers = $_POST['answers']; 
}else{ 
    die('error'); 
} 

はこれが道Iですそれを行う、ちょうど表示/ javascriptで質問を非表示にする。

質問ごとにページを更新している場合は、JSファイル内でPHPコードを使用しようとしていない限り、すべての新しいページの読み込み時にPHPで回答を保存することができます。

+0

ページがリフレッシュされたときに私の全ポイントがデータを失わないことは、 。 –

0

PHPの問題は、javascriptの前に実行されるため、phpを追加したり、javascript変数をphp varivableに割り当てることができないことです。

問題を解決するには、ajaxを使用する必要があります。 ajaxリクエストを行い、GETを通じてすべての値を送信します。この後、ajaxリクエストを行ったPHPファイル内のすべての変数を使用できます。 すべての変数をトラバースしてセッションに挿入します。

関連する問題