对于提出一个基本问题,我是一名新人。
我有一个php页面 - 一个'创建新项目'页面
有一些简单的数据,如姓名,截止日期等......
但是根据项目的类型,我在这个表格中有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,我希望在表单下方可以打开page1.php或page2.php等用户选择...
提前致谢
安德拉什
可能是ajax问题......
答案 0 :(得分: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。这导致了进一步开发和维护的困难。
答案 1 :(得分:0)
您想向您的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这个问题与你的问题非常相似。