我应该在下面的下一篇文章网址链接中添加什么PHP代码,这会导致下一篇文章随后被回复?
我打算按顺序回复一篇文章。
谢谢!
(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>
答案 0 :(得分: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>
答案 1 :(得分:0)
你没有做太多的事情,但假设$_GET['article']
应该是一个文章编号,你只需将它增加1(假设你的文章是连续的):
<a href="process.php?article=<?php echo (int)$_GET['article'] + 1; ?>" style="text-decoration: none;">NEXT ARTICLE</a>