2016-06-15 15 views
1

私は単純なログインインターフェースでウェブサイトを構築しています。ユーザーは、1つのフォームを使用する3つの異なるユーザータイプ、A BとCの1つとしてログインできます。これを処理するためのフォーム内のコードは次のとおりです。ユーザーの種類に応じてPHPファイルのHTMLフォームデータを他の3つのPHPファイルの1つに渡します

    <input type="radio" name="user_type" value="a" id="a"> 
        <label for="a">A</label> 

        <input type="radio" name="user_type" value="b" id="b"> 
        <label for="b">B</label> 

        <input type="radio" name="user_type" value="c" id="c"> 
        <label for="c">C</label> 

、ログインページが送信ボタンをフォームのクリック時に3つのPHPファイルにユーザーをリダイレクトする必要があります。私はPHPで使用すると、1つのファイルに導くためのログインページでは

<form method="post" action="otherFile.php"> 

を使用することができます知っています。そして、使用する

<?php 
if(isset($_POST['submit'])) 
{ 
    $firstname = $_POST['firstname']; 
    $lastname = $_POST['lastname']; 
    echo $firstname . "<br/>"; 
    echo $lastname; 
} 
?> 

フォームデータを取得するotherFile.phpに。しかし、user_typeの選択に応じて、3つのPHPファイルのいずれかでこれを行いたいと思います。

明らかに動作しません。

+1

あなたは、後で他の場所で使用するためにデータを格納するためにセッションを使用することができます。 –

+0

@Caelanこれは私のコードの先頭にあります: <?PHP ob_start(); session_start(); ?> しかし、これを使用して後で使用できるようにデータを保持する方法がわかりません。 – jvnna

+0

答えを見てください:) @jvnna –

答えて

0

私はこれが欲しいかどうかわかりませんが、単一のPHPを作成できます。値がある場合は、includeまたはrequire関数を使用して値を要求します。

例えば、processor.php

<? 
$user_type = $_POST["user_type"]; 
switch($user_type) { 
    case "a": 
     require_once 'otherFile.php'; 
     break; 
    case "b": 
     require_once 'otherFile2.php'; 
     break; 
    case "c": 
     require_once 'otherFile3.php'; 
     break; 
    default: 
     die("Not allowed"); 
     break; 
} 
?> 
2

あなたはあなたのサイトの他の領域で使用するためのデータを格納するのに$_SESSIONを使用することができます。それを簡単にするために

、あなたのような何かを行うことができます:

session_start(); 
$_SESSION['firstname'] = $_POST['firstname']; // store firstname, lastname as sessions 
$_SESSION['lastname'] = $_POST['lastname']; 

をそして、別のページの中には、出力にこれらのセッションを呼び出すことができます。

$firstname = $_SESSION['firstname']; 
print("$firstname"); // will print the first name. 

私はこれが役に立てば幸い:)

EDIT:あなたは$_SESSIONを作成し、別のページにそれを印刷しようとする前に、を作成page1.phpあなたcore.phpのスクリプトの内部 & page2.php

両方にcore.phpのページとincludeそれ、あなたはそうのように、セッションを起動する必要があります。

session_start(); 

core.phpファイルを両方のページに組み込んだら、再度$_SESSION変数を印刷してみてください。 JavaScriptを使用して

+0

これはまさに私がやりたかったと思います。ありがとうございました – jvnna

+0

@ jvnnaこれはあなたのために働いた場合、それを正しいとして選択するか、または/またはupvotingを検討してください:) –

+0

私はまだ問題があります。私は '<?php session_start();を持っています。 $ _SESSION ['user'] = $ _POST ['user']; // firstname、lastnameをセッションとして保存します $ _SESSION ['password'] = $ _POST ['password'];私は '<?php $ user = $ _SESSION ['user'];を持っています。 print( "$ user"); //最初の名前が表示されます。 ?> '私はコードを実行するとuser_type1.phpに何も表示されません – jvnna

0

<script src="https://code.jquery.com/jquery-1.11.3.js"></script> 
<script type="text/javascript"> 
jQuery("#myForm").submit(function(event) { 
    var radio = jQuery('input[name=user_type]:checked', this).val(); 
    if(radio == 'a') 
     this.action = 'otherFile.php'; 
    else if(radio == 'b') 
     this.action = 'otherFile2.php'; 
    else if(radio == 'c') 
     this.action = 'otherFile3.php'; 
    else 
     return false; 
}); 
</script> 

フォーム:

<form method="post" action="" id="myForm"> 
    <input type="radio" name="user_type" value="a" id="a"> 
    <label for="a">A</label> 

    <input type="radio" name="user_type" value="b" id="b"> 
    <label for="b">B</label> 

    <input type="radio" name="user_type" value="c" id="c"> 
    <label for="c">C</label> 

    <input type="submit" value="Submit"> 
</form> 
+0

しかし、私はログインページからテキスト/ラジオ/ドロップダウンフォームのエントリーを保存し、それらを他のページに持って来たいと思っています。私はJS/jQueryに慣れていませんが、あなたのコードではそうは思いません – jvnna

関連する問題