2017-02-21 14 views
0

PHPクエリの結果(個々のジョブリスト)のページがあります。私はORDER BYを使用したいので、個人は期日、職名などのいずれかに基づいて結果を注文することができます。ページリロード時に_GET経由で取得されるphp変数を保持する

ユーザーが変数表のヘッダーをクリックすると問題が発生するようです。これによりページがリフレッシュされ、_GETの変数は明らかに消えてしまいます。私はクッキーとして設定しようとしましたが、おそらく私はこれを正しく設定していないと考えています。

これは、ドキュメントの先頭にあります。

<?php 
    if($_SERVER['REQUEST_METHOD']=='GET' && isset($_GET['assignee'])){ 
    $assignee = filter_input(INPUT_GET, 'assignee', FILTER_SANITIZE_STRING); 
} 
    $assignee_name = $assignee; 
    setcookie($assignee_name, time() + (86400 * 30), "/"); // 86400 = 1 day 
?> 

これはforeachループの前に直接PHP次のとおりです。

<?php 
    $servername = "localhost"; 
    $username = "jobs_usr1"; 
    $password = "xxxxxxxxx"; 
    $dbname = "jobs_users"; 

    // Create connection 
    $conn = mysqli_connect($servername, $username, $password, $dbname); 
    // Check connection 
    if (!$conn) { 
     die("Connection failed: " . mysqli_connect_error()); 
     } 
    $sql = "SELECT * FROM `jobs_canjobs` WHERE assignee = \"$assignee\""; 

    $orderBy = array('job_numb', 'job_name', 'due_date', 'show_date', 'status'); 

    $order = 'type'; 
      if (isset($_GET['orderBy']) && in_array($_GET['orderBy'], $orderBy)) { 
      $order = $_GET['orderBy']; 
     } 
       if(isset($_COOKIE[$assignee_name])){ 
    $sql = "SELECT * FROM `jobs_canjobs` WHERE assignee = \"$assignee_name\" ORDER BY $order"; 
       } 
    $results = mysqli_query($conn, $sql); 
?> 

そして、結果テーブルに、テーブルヘッドの下で、私が持っていますこの:

<table> 
    <tr style="background-color: cadetblue"> 
     <th><a href="?orderBy=job_numb"><b>Job ID#</b></a></th> 
     <th><a href="?orderBy=job_name"><b>Title</b></a></th> 
     <th><a href="?orderBy=due_date"><b>Due Date</b></a> | <a href="?orderBy=show_date"><b>Show Date</b></a></th> 
     <th><a href="?orderBy=status"><b>Status</b></a></th> 
    </tr> 
<?php 
foreach ($results as $result){ 
    $job_numb = $result['job_numb']; 
    $assignee = $result['assignee']; 
    $job_name = $result['job_name']; 
    $due_date = $result['due_date']; 
    $show_date = $result['show_date']; 
    $status = $result['status']; 
?> 
<tr> 
    <td> 
     <p><?php echo $job_numb;?></p> 
    </td> 
    <td> 
     <p><?php echo $job_name;?></p> 
    </td> 
    <td> 
     <p><?php echo $due_date;?> | <?php echo $show_date;?></p> 
    </td> 
    <td> 
     <p><?php echo $status;?></p> 
    </td> 
</tr> 
<? php } ?> 
</table> 

並べ替えなし$order、それはうまく動作しますが、一度誰かがthをクリックすると、変数は消えてしまい、ページをリロードしてもそれを保持する方法がわかりません。

この変数をページに保存する方法はありますか?結果を表示するには再度参照できますか?クリックした後のURLには変数が含まれていないため、ページの更新がわかります。

ご協力いただければ幸いです。ありがとうございました。

+0

クッキーまたはセッション。 – AbraCadaver

+0

私はクッキーを使用しようとしていますが、私はそれを正しく実装したとは思いません。 – scoopzilla

答えて

0

PHPについての涼しい事は

<th><a href="?orderBy=job_numb<?php if ((isset($_GET['assignee'])) && (!empty($_GET['assignee']))){ 
    echo '&assignee='.URL_ENCODE($_GET['assignee']);}?>"><b>Job ID#</b></a></th> 

これを最初にチェック

は、そのVARが定義されている場合、あなただけのHTMLドキュメント内のちょうど約どこでもそれをplonkことができている、と 別名空その後、追加「」として定義されていません

URLに改行が挿入されていないことを確認するために、すべてを1行に入力します。私が見ることができるように

だから、結果のリンクはスクリプトでの作業中の$ VARが予め設定された$ _GET [「譲受人」]

PSである&譲受人= $のVARで終了します私は常にトップTEHするためにこれを追加しますログファイルを見ないエラー。

ini_set('display_startup_errors', 1); 
ini_set('display_errors', 1); 
error_reporting(-1); 
+0

奇妙なことに、すべてのページは結果がなかった。それを頭からも取り除くべきですか? – scoopzilla

+0

提供したコードスニペットを入力した場所のURLはどうなりますか? (右のリンクをクリックして、ほとんどのブラウザでリンクの場所をコピーしてください) –

+0

これはURLです:http://someplace.com/job_list_individual.php?assignee = Sean%20Rawles&orderBy = show_date – scoopzilla

関連する問題