【问题标题】:Drop down list solution?下拉列表解决方案?
【发布时间】:2011-08-23 06:44:41
【问题描述】:

我是新手,很抱歉提出一个基本问题。

我有一个 php 页面 - 一个“创建新项目”页面

有一些简单的数据,例如姓名、截止日期等...

但是根据项目的类型,我在这个 FORM 中有 4 个不同的端(不同的页面?),我找不到它的解决方案。

这是我的代码:

<h1>New Project</h1>
<form name="newpr">
New project name:<input type="text" placeholder="new project name..."><br />
New project end date:<input type="text" placeholder="date..."><br />
New project type:
<select name="menu" onChange="location=document.newpr.menu.options[document.newpr.menu.selectedIndex].value;" >
<?php 
$listdata = mysql_query("SELECT * FROM lists WHERE tag='prtype' ORDER BY listing ASC");
while($listresult = mysql_fetch_array($listdata))
{
if ($listresult["listing"]!="...") $link=$listresult["value"].".php";
else $link="";

echo "<option value='".$link."'>".$listresult["listing"]."</option> ";
}
?>
</select>
</form>

如您所见,选择列表来自 Mysql,我希望表单下的 div 能够在用户选择时打开 page1.php 或 page2.php 等...

提前致谢

安德拉斯

可能是ajax问题...

【问题讨论】:

  • 看起来您正在尝试根据要尝试的选择框来转发用户,但这样做您不会转发他们输入的其他选项 - 这是您遇到的问题吗?
  • 我想在表格中添加不同的问题。我的想法是在不同的 php 文件中创建这些问题并在相同的页面上打开这些问题......这就是我卡住的地方。此代码重定向到另一个错误的页面,但这就是我得到的结果。

标签: php javascript html ajax drop-down-menu


【解决方案1】:

我会通过以下方式解决这个问题

<!-- using jQuery -->

<h1>New Project</h1>

<form method="" action="post">
    New project name:<input type="text" placeholder="new project name..."><br/>
    New project end date:<input type="text" placeholder="date..."><br/>
    New project type:
    <select name="menu">
        <?php 
        $listdata = mysql_query("SELECT * FROM lists WHERE tag='prtype' ORDER BY listing ASC");
        while($listresult = mysql_fetch_array($listdata))
        {
            $link = '';
            if($listresult['listing'] != '...') {
                $links = $listresult['value'] . ".php";
                echo "<option value='$link'>${listresult['listing']}</option>";
            }
        }
        ?>
    </select>

    <div id="page">
        <!-- container for loaded page -->
    </div>

    <script type="text/javascript">
        $("select[name=menu]").change(function() {
            var url = $("option:selected", this).val();
            // Load a page to the container
            $("#page").load(url);
        });
    </script>
</form>

使用jQuery,我在选择框上添加了更改处理程序,如果已更改,它会通过 ajax 将页面加载到 div 容器中。

让我给你和建议 - 尽量避免混合代码和 html。导致后续开发和维护困难。

【讨论】:

  • 嗨鲍里斯,非常感谢它确实很棒,它似乎可以工作但是 $link 出于某种原因没有出现在选项中。
  • 再次感谢鲍里斯!太好了,我发现错误而不是 $links 它只是 $link - 但是您的解决方案很棒。再次感谢!!!!
  • 老实说,我更专注于 html+js。还有php,我一点一点的忘记了。
【解决方案2】:

您想向您的 php 页面发出 HTTP 请求
Checkout
http://mootools.net/docs/core/Request/Request.HTML
http://mootools.net/docs/more/Request/Request.JSONP

监听请求的回调,然后将返回的数据作为元素注入 DOM。
Mootools 是我选择的武器,但 Jquery 等都具有相同的功能。
call php page under Javascript function这个问题和你的很相似。

【讨论】:

  • 感谢您的帮助,不幸的是我找不到能够检查代码的演示...没有它对我来说有点原始...您能举个例子吗?
猜你喜欢
  • 2012-06-03
  • 2012-01-24
  • 1970-01-01
  • 2018-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多