从URL字符串传递多个变量

时间:2010-11-25 11:50:56

标签: php mysql string url variables

已解决:在页面1代码中添加了一些java来读取URL参数,然后按如下方式修改了Ajax代码:

var d = gup( 'd' );

    new Ajax.Request('new_respondent_role_video.php?d=' + d,

感谢大家的帮助。

编辑:

用户点击访问该网站的新网址如下:

http://www.xyv.com/ttt/index.php?r=1&d=2010-11-24

此URL包含d日期变量 - 我需要通过函数传递它,以便将其添加到数据库中。

希望更有意义吗?

小时。

您好,

我希望有人可以提供帮助。我在多个页面上继承了以下代码,并且我被要求对代码进行一些修改,详细说明如下,但我真的很挣扎。

第1页的网址

http://www.xyv.com/ttt/index.php?r=1

Page 1

<?php include_once("db.inc.php");
//$i = 2;
$i = $_GET['r'];
if ($i == 1) {
  include("_inc/login_script_role_video.php");
  echo "<h1>Loading questionnaire please wait.</h1>";
}else if($i == 2){
  include("_inc/login_scriptm_role_video.php");
  echo "<h1>Loading questionnaire please wait.</h1>";
}else if($i == 3){
  include("_inc/login_scriptd_role_video.php");
  echo "<h1>Loading questionnaire please wait.</h1>";
}else{
  echo "<h1>You have tried to access the survey without a correct id, ",
       "please refer to your invitation email.</h1>";
}

//echo $i;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <title><?php include("_inc/title.php"); ?></title>
  <link rel="stylesheet" type="text/css" href="main.css" />
  <script src="main.js" type="text/javascript"></script>
  <script src="javascripts/scriptaculous.shrunk.js" 
  type="text/javascript" charset="ISO-8859-1"></script>
</head>
<body onload="startSurvey();">

</body>
</html>

此页面将根据URL中的r指向登录脚本。

startSurvey代码

function startSurvey(){
/* var respondent_id = document.getElementById('respondent_id').value;
if(1==0) { if open survey, use respondent_id.length==0*/
    new Ajax.Request('new_respondent_role_video.php',
      {
        method:'get',
        onSuccess: function(transport){
          var respondent_id = transport.responseText;
          window.location='prog-role-video.php?r=' + respondent_id;
        },
        onFailure: function(){
              Effect.Appear('problem');
            }
      });
}

打开另一个文件,将响应者添加到数据库,然后重新定向用户。

新的受访者档案

<?php
include_once("db.inc.php");

$respondent_id = new_respondent_role_video();

header("Content-type: text/plain");

echo $respondent_id;
?>

返回respondent_id以保证对网站的访问权限可以继续

SQL代码

function new_respondent_role_video() {
$d = $_GET['d'];

global $link;
$proc = mysqli_prepare($link, "INSERT INTO trespondent ".
      "(code, link, role, course, page, dates) ".
      "VALUES (uuid(), 'http://www.1.xyc.co.uk/tmg/prog-role-video.php?r=', ".
      "'STAFF', 'story telling', '8', '2010-10-10');");
mysqli_stmt_execute($proc);
$id = mysqli_insert_id($link);
mysqli_stmt_fetch($proc);
mysqli_stmt_close($proc);
mysqli_clean_connection($link);

global $link;
$proc = mysqli_prepare($link, "SELECT code FROM trespondent ".
    "WHERE respondent_id = ?");
mysqli_stmt_bind_param($proc, "i", $id);    
mysqli_stmt_execute($proc);
mysqli_stmt_bind_result($proc, $code);
mysqli_stmt_fetch($proc);
mysqli_stmt_close($proc);
mysqli_clean_connection($link);
return($code);

}

添加新用户,然后返回该用户的ID。

需要什么

我需要在网址中添加另一个变量,就像这样

http://www.xyv.com/ttt/index.php?r=1&d=2010-11-24

然后我需要将该变量d传递给添加新用户代码,因此它将日期添加到数据库的日期字段中,如下所示:

$d = $_GET['d'];

$proc = mysqli_prepare($link, "INSERT INTO trespondent_tmg ".
  "(code, link, role, course, page, dates) VALUES (uuid(), ".
  "'http://www.1.xyz.co.uk/xyz/prog-role-video.php?r=', ".
  "'STAFF', 'The role of video in multi-media story telling', '8', '$d');");

无论我在哪里放置$GET代码,我都无法将页面传递给Function,从而将d日期变量添加到数据库中。

欢迎任何帮助,想法和建议。

完全明白这不是最好/最简单但如果有人可以提供帮助......非常感谢。

荷马。

1 个答案:

答案 0 :(得分:2)

您可能只需要更改以下行以包含您的d变量(除非您还没有提及其他一些内容):

new Ajax.Request('new_respondent_role_video.php'

即。

new Ajax.Request('new_respondent_role_video.php?d=2010-11-25'