如何根据<select>?</select>更改内容

时间:2013-02-01 17:50:09

标签: php

我需要2个方面的帮助,因为我不擅长PHP: 内容根据以下内容而变化:

<select>
    <option>Option 1</option>
    <option>Option 2</option>
</select>

我认为这可以通过使用PHP来完成,方法是为选项提供名称,让PHP获取名称,根据这些名称创建变量,并添加一个显示不断变化的内容的“include”。

这是脚本的模型:

READ选择
IF用户选择“variable1,varialbe2等”
那么显示“page1,page2,page3”
*页面在页面内更改,以便如果用户想要再次更改它们,则不必返回...也许这可以通过以下方式完成:

<?php include 'page1.php'; ?>

该内容将包含一个按钮,根据该按钮,我希望文本框中填充某些文字。

<input type="button" value="">

然后,根据该按钮的值,PHP会将文本放入文本框中。 根据我的阅读,这将使用$ request和$ post ... (这当然是单独的PHP)

4 个答案:

答案 0 :(得分:5)

可能有几种不同的方法可以实现您的目标。如果我们坚持按照您的要求使用PHP,那么这样的事情可能是最好的。我在这里使用了一个case / switch用于安全目的而使用POST而不是GET来防止URL操作,尽管在case / switch中你已经解决了很多URL操作问题,所以这对你来说是个优先选择。

<?php
$page = null;
if(isset($_POST['page'])){
    $page = $_POST['page'];
}
switch($page){
    case 'page3': include_once('/path/to/page3content.php'); break;
    case 'page2': include_once('/path/to/page2content.php'); break;
    case 'page1': include_once('/path/to/page1content.php'); break;
    default: include_once('/path/to/defaultcontent.php'); break;
}
?>
<form name="myform" action="" method="post">
    <select name="page" onchange="this.form.submit()">
        <option value="page1"<?php if($page == "page1"){ echo " selected"; }?>>Page 1</option>
        <option value="page2"<?php if($page == "page2"){ echo " selected"; }?>>Page 2</option>
        <option value="page3"<?php if($page == "page3"){ echo " selected"; }?>>Page 3</option>
    </select>
</form>

但是,根据您的文件结构,您只需使用一些基本的Javascript和HTML即可完成类似的操作。

<select name="page" onchange="window.location=this.value">
    <option value="/path/to/page1.php">Page 1</option>
    <option value="/path/to/page2.php">Page 2</option>
    <option value="/path/to/page3.php">Page 3</option>
</select>

答案 1 :(得分:1)

您需要在name代码中添加select字段,并在value代码中添加option字段:

<form name='myform' action='myform.php' method='POST'>
  <select name='myselect'>
    <option value='1'>Option 1</option>
    <option value='2'>Option 2</option>
    <option value='3'>Option 3</option>
  </select>
  <input type='submit'>
</form>

然后PHP页面将通过$_POST['myselect']收到选择。

答案 2 :(得分:1)

您可以提交选择选项的表单onChange事件。

然后,您可以运行$_GET并通过比较$_GET['page']

的值来显示该特定网页的相应内容
  <form action="page.php" method="get">    
    <select name="page" onchange="this.form.submit()">
            <option value="page1">Page 1</option>
            <option value="page2">page 2</option>
        </select>
    </form>
        <?php
        if(isset($_GET['page'])){

            if($_GET['page']=="page1"{

             //content for page 1

            }elseif($_GET['page']=="page2"{

             //content for page 2

            }

        }


        ?>

这样你也不需要提交按钮。您还可以通过比较$_GET['page']的值将其重定向到特定页面,但是您需要在每个页面中包含此表单,并使用适当的方法来完成工作。

答案 3 :(得分:1)

您也可以绕过提交按钮并使用以下内容:

<form action="index.php" name="myForm"  method="post">
    <select onchange="window.location.href = this.value" name="select">
        <option value="index.php?page=yourpage">yourpage</option>
        <option value="index.php?page=yourpage2">yourpage2</option>
    </select>
</form>

然后你的内容会在哪里:

<?php 
    if (isset($_GET['page'])) {
            if ($_GET['page'] == "yourpage") {include("pages/page1.php");}
            else ($_GET['page'] == "yourpage2") {include("pages/page2.php");}
    } else {include("pages/default.php");}
?>