我如何在URL中传递值?

时间:2013-12-03 18:38:31

标签: php sql

如何创建链接的网址?我想当用户点击操作时它会将用户重定向到操作页面。但我不想为我在下面提供的链接创建页面。我想要做的是在同一页面上显示不同类型的内容;

这是我的HTML

<ul class="snav">
    <li><a href="#">Action</a></li>
    <li><a href="#">Art and Experimental</a></li>
    <li><a href="#">Comedy</a></li>
    <li><a href="#">Crime and Mystery</a></li>
    <li><a href="#">Documentary</a></li>
    <li><a href="#">Drama</a></li>
    <li><a href="#">Epic and Historical</a></li>
    <li><a href="#">Family</a></li>
    <li><a href="#">Fantasy</a></li>
    <li><a href="#">Foreign</a></li>
    <li><a href="#">Horror</a></li>
    <li><a href="#">Live Performances</a></li>
    <li><a href="#">Musicals</a></li>
    <li><a href="#">Romance</a></li>
    <li><a href="#">Science Fiction</a></li>
    <li><a href="#">Special Interest</a></li>
    <li><a href="#">Sports</a></li>
    <li><a href="#">Thriller</a></li>
    <li><a href="#">War</a></li>
    <li><a href="#">Westerns</a></li>
</ul>

3 个答案:

答案 0 :(得分:1)

实现此目的的一种方法是使用查询字符串根据您的基本网址形成网址。

http://domain.tld/index.php?genre=crime

的index.php

if ($_GET['genre'] == 'crime') {
    // display crime genre
} else {
    // display index
}

您还需要在执行此操作时包含一些验证/错误检查。您可以使用isset()检查是否设置了类型参数。 escape the input到'流派'也很重要,因此injection attacks的可能性较小。

答案 1 :(得分:1)

要一次性生成链接和更改页面内容,您可以尝试:

<?php
  $actions = array("Action", "Art and Experimental", "Comedy", "Crime and Mystery", "Documentary", "Drama", "Epic and Historical", "Family", "Fantasy", "Foreign", "Horror", "Live Performances", "Musicals", "Romance", "Science Fiction", "Special Interest", "Sports", "Thriller", "War", "Westerns");
?>

<ul class="snav">
<?php
foreach($actions as $action) {
    $url_token = str_replace(' ', '_', strtolower($action));
    echo '<li><a href="?genre=' . $url_token . '">' . $action . '</a></li>';
}
?>
</ul>

<?php
$genre = $_GET['genre'];

switch ($genre) {
    case 'action':
        echo 'Woo Action!';
        break;
    case 'drama':
        echo 'GASP!';
        break;
    case 'art_and_experimental':
        echo 'Weird...';
        break;
    default:
        echo 'There is no action called ' . $genre . ' :(';
}
?>

这将生成以下形式的html:

<ul class="snav">
    <li><a href="?genre=action">Action</a></li>
    <li><a href="?genre=art_and_experimental">Art and Experimental</a></li>
    ...
</ul>

答案 2 :(得分:0)

你将不得不使用PHP使用$ _GET变量,并且有类似的东西:

链接看起来像

<a href="?genre=action">Action</a>

PHP文件:

if (isset($_GET['genre'])) {
switch ($_GET['genre']) {
   case 'action':
      echo 'something here';
      break;
   case 'horror':
      echo 'something here';
      break;

  //etc
}
}

或者您可以使用jQuery将数据动态加载到页面中。

希望这有帮助!