Передача нескольких переменных из строки URL - PullRequest
0 голосов
/ 25 ноября 2010

решено: добавлено несколько java в код страницы 1 для чтения параметров URL, а затем изменен код Ajax следующим образом:

var d = gup( 'd' );

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

Спасибо всем вам за помощь.

РЕДАКТИРОВАТЬ:

Новый URL-адрес, по которому пользователь нажимает для доступа к сайту, выглядит следующим образом:

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

Этот URL-адрес содержит переменную даты d - мне нужно передать ее черезФункция, так что она добавляется в базу данных.

Надеюсь, что это имеет немного больше смысла?

H.

Привет,

Я надеюсь, что некоторые могут помочь,Я унаследовал следующий код на нескольких страницах, и меня попросили внести некоторые изменения в код, подробно описанный ниже, но я действительно изо всех сил.

URL для страницы 1

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

Страница 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>

Эта страница указывает на сценарий входа в зависимости от r в URL.

код 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;
?>

Возвращает responsedent_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);

}

Добавляет нового пользователя и затем возвращает идентификатордля этого пользователя.

Что нужно

Мне нужно добавить еще одну переменную в URL, например,

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, я не могу заставить страницы передать эту переменную в функцию и, таким образом, добавить переменную даты d в базу данных.

Любая помощь, идеи, предложения приветствуются.

Полностью признателен, что это не самое лучшее / простое, но если кто-то может помочь .... очень ценится.

Гомер.

1 Ответ

2 голосов
/ 25 ноября 2010

Возможно, вам просто нужно изменить следующую строку, чтобы включить вашу переменную d (если нет других вещей, о которых вы не упомянули):

new Ajax.Request('new_respondent_role_video.php'

есть.

new Ajax.Request('new_respondent_role_video.php?d=2010-11-25'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...