2013-02-16 222 views
0

下面的URL鏈接應添加什麼樣的php代碼,這將導致下一篇文章隨後被回顯?將php代碼添加到url鏈接

我打算一個接一個地回顯一篇文章。

謝謝!

(form.php的)

<form action="process.php" method="get"> 
    Group: 
    <select name="group"> 
     <option value="group1">Group1</option> 
     <option value="group2">Group2</option> 
    </select> 

    Chapter: 
    <input type="text" name="chapter"> 

    Article: 
    <input type="text" name="article"> 

    <input type="submit" value="Go to Article">  

</form> 

(process.php)

<?php 

session_start(); 

$laws=array(
     "group1"=>array(
         "1"=>array(
           "1"=>"This is article (1) in chapter (1) of (group1)", 
           "2"=>"This is article (2) in chapter (1) of (group1)", 
           "3"=>"This is article (3) in chapter (1) of (group1)", 
           ), 
         "2"=>array(
           "1"=>"This is article (1) in chapter (2) of (group1)", 
           "2"=>"This is article (2) in chapter (2) of (group1)", 
           "3"=>"This is article (3) in chapter (2) of (group1)", 
           ), 
         ), 
     "group2"=>array(
         "1"=>array(
           "1"=>"This is article (1) in chapter (1) of (group2)", 
           "2"=>"This is article (2) in chapter (1) of (group2)", 
           "3"=>"This is article (3) in chapter (1) of (group2)", 
           ), 
         "2"=>array(
           "1"=>"This is article (1) in chapter (2) of (group2)", 
           "2"=>"This is article (2) in chapter (2) of (group2)", 
           "3"=>"This is article (3) in chapter (2) of (group2)", 
           ), 

     ) 
     ); 

$grp= $_GET['group']; 
$chap = $_GET['chapter']; 
$art = $_GET['article']; 

if(isset($laws[$grp]) && isset($laws[$grp][$chap]) && isset($laws[$grp][$chap][$art])){ 
$_SESSION['group'] = $grp; 
$_SESSION['chapter'] = $chap; 
$_SESSION['article'] = $art;  
}else{ 
$_SESSION['group'] = 'group1'; 
$_SESSION['chapter'] = '1'; 
$_SESSION['article'] = '1'; 
} 

$group = $_SESSION['group']; 
$chapter = $_SESSION['chapter']; 
$article = $_SESSION['article']; 


echo $laws[$group][$chapter][$article]; // ALL NEXT ARTICLES TO BE ECHOED HERE!!!!! 

?> 

<a href="process.php" style="text-decoration: none;">NEXT ARTICLE</a> 
+1

'$ _SESSION ['article'= $ _GET ['article']];'祝你好運分配。 – 2013-02-16 00:01:53

+0

你如何確定下一篇文章是什麼? – 2013-02-16 00:02:32

+0

@ Jan-Henk:'$ _SESSION ['nextarticle'= $ _GET ['nextarticle']];'顯然。 – FtDRbwLXw6 2013-02-16 00:07:16

回答

0

它不清楚在接下來的文章是的,你有什麼似乎是一個錯誤(見我的意見)

我已更新您的代碼,以便鏈接將加載文章(但也許它不是下一篇文章)。也許這在將至少幫助你用自己的方式找到了答案,...

<?php 

    // $_GET['group'] receives a string 
    // $_GET['chapter'] receives a number 
    // $_GET['article'] receives a number 


    $_SESSION['group'] = $_GET['group']; 
    $_SESSION['chapter'] = $_GET['chapter']; 

     // this line here doesn't really make sense.... 
     //$_SESSION['article' = $_GET['article']]; 
     //so perhaps you mean: 
     $_SESSION['article'] = $_GET['article']; 

     $group = $_SESSION['group']; 
     $chapter = $_SESSION['chapter']; 
     $article = $_SESSION['article']; 


     echo $group . " " . $chapter . " " . $article . "<br/>"; 

     $group_num = preg_replace("[^0-9]","",$group); //get the number of the group by removing everying in the string `$group` that is not a number (leaving just the number) 

     $next_article_data = array(); 
     if(isset($laws[$group][$chapter][$article+1])){ 
      $next_article_data['group'] = $group; 
      $next_article_data['chapter'] = $chapter; 
      $next_article_data['article'] = $article+1; 
     }else if(isset($laws[$group][$chapter+1][1])){ 
      $next_article_data['group'] = $group; 
      $next_article_data['chapter'] = $chapter+1; 
      $next_article_data['article'] = 1; 
     else if (isset($laws["group".($group_num+1)][1][1])){ 
      $next_article_data['group'] = "group".($group_num+1); 
      $next_article_data['chapter'] = 1; 
      $next_article_data['article'] = 1; 
     else 
      echo "NO NEXT ARTICLE!"; 


     ?> 

     <a href="process.php<?php 

     //I added this to pass article info in the url 
     echo "?".http_build_query($next_article_data); 
     ?>" style="text-decoration: none;">NEXT ARTICLE</a> 
+0

請再次請看這段代碼... – user2075752 2013-02-16 00:39:09

+0

請參閱編輯答案 – Tucker 2013-02-16 02:57:07

0

你還沒有太多去,但假設$_GET['article']應該是一個文章編號,你只需增加它由1(假設你的文章是連續的):

<a href="process.php?article=<?php echo (int)$_GET['article'] + 1; ?>" style="text-decoration: none;">NEXT ARTICLE</a>