2012-10-22 10 views
1

这仅仅是一个用于我自己的学习目的的项目。对于我的项目,用户将能够创建民意调查并回答它们。每项调查都将拥有自己的唯一ID,并可通过其唯一网址进行访问。在页面之间导航时动态地将数据附加到URL查询字符串

我的问题是这样的。我知道我可以这样做,但这是一种学习体验。当用户提交此表:

<form name="createPoll" action="polls.php" method="post"> 
     Poll Title: <input name="pollTitle" type="text" /><br /> 
     Option 1: <input name="pollOption" type="text" /><br /> 
     Option 2: <input name="pollOption" type="text" /><br /> 
     <input type="submit" value ="Submit Poll" /><br /> 
    </form> 

我想运行一个脚本,将内容添加到我的MySQL数据库,并使用pollID,该脚本将生成的URL是这样的:

http://www.mydomainname.com/polls.php?pollID=12345 

其中“12345”是投票的唯一ID。我的问题是这样的:

什么是使用户在提交表单时将用户带到http://www.mydomainname.com/polls.php?pollID=12345(假设生成的pollID为'12345')的最佳方式是什么?为了在脚本创建唯一的pollID后重定向它们,我必须在php中设置标题吗?

感谢

+1

最简单的方法是在提交之前生成ID。 (即生成ID并将其附加到表单操作中)然后使用该ID在数据库中创建轮询。否则,你必须重定向头。 – phpisuber01

回答

1

顺便说一句:有两个输入名为 “POLLOPTION”,要小心:)

您的插入代码可能是这样的

$id=rand(100000,9999999999999999); 
$checkid=mysql_query("SELECT ID FROM ID WHERE ID='$id'"); 
$checkidx=mysql_fetch_array($checkid); 

if($_POST and $checkidx==null){ 
$title=$_POST['pollTitle']; 
$opt1=$_POST['pollOption1']; 
$opt2=$_POST['pollOption2']; 
$insert=mysql_query("INSERT INTO ID,title,option1,option2 VALUES ('$id','$title','$opt1','$opt2')"); 
echo "Added! You re redirecting"; 
?> 
<meta http-equiv="refresh" content="2;URL=http://www.mydomainname.com/polls.php?pollID=<?echo $id; ?>"> 

<? 
} 

和你polls.php可能就是这样;

$id=$_GET['id']; 
if($id!=null){ 
$idget=mysql_query("SELECT * FROM blabla WHERE ID='$id'"); 
$idgetx=mysql_fetch_array($idget); 

echo $idgetx[0] . $idgetx[1]; 
} 
+0

感谢您的提示。我对此很sl with。我复制并粘贴后忘记重命名该字段。 – Bender

1

生成URL,然后使用header()重定向的页面。

如:

$id = 12345; 

$url = 'http://www.mydomainname.com/polls.php?pollID=' . $id; 
header('Location: ' . $url); 
相关问题