将表单ACTION发送到另一个将处理第1页结果的php页面

时间:2013-09-15 22:24:59

标签: php html mysql forms

我创建了2页。一个名为 test.php 的人,只有一些带有沼泽标准格式的html。

<Form name ="form1" Method ="GET" Action ="result.php">

   room number: <INPUT TYPE = "TEXT" Name ="roomId">
   <INPUT TYPE = "Submit" Name = "Submit" VALUE = "Go">

</FORM>

和另一个处理它的页面名为results.php。

$roomId = $_POST['roomId'];

            $sql = mysql_query("SELECT * FROM forestcourt WHERE id=$roomId");

            $id2 = 'id';
            $buildingName = 'buildingName';
            $subBuildings = 'subBuildings';
            $imagePath = 'imagePath';
            $description = 'description';


            $rows2 = mysql_fetch_assoc($sql);
            echo 'Name: ' . $rows2[$buildingName] . '<br/>' . 'Sub Buildings: ' . $rows2[$subBuildings] . '<br/>' . 'Description: ' . $rows2[$description] . '<br/>' . 'Location: ' . '<img src="../' . $rows2[$imagePath] . '"/>' . '<br/><br/>';

我想要它有效地做的是从test.php上的输入中获取值,并在按下提交按钮时将其作为$roomId存储在results.php页面上。我已经让它与其他例子一起工作了,但我不确定为什么它不在这里......希望我只是犯了一个简单的错误,有人可以指出它!

我知道页面已连接到数据库,因为如果我对'results.php'做一些评论,它会从数据库中获取信息。

如果我发表评论:

$roomId = $_POST['roomId'];

并改变:

$sql = mysql_query("SELECT * FROM forestcourt WHERE id=$roomId");

$sql = mysql_query("SELECT * FROM forestcourt WHERE id=1");

results.php页面上的信息与数据库中的信息相同。

我在完成整个过程时出现的错误是:

  

“警告:mysql_fetch_assoc():提供的参数不是有效的MySQL   结果资源   /websites/123reg/LinuxPackage23/ed/ge/_g/xxx.co.uk/public_html/testing/result.php   在第49行“

第49行将是:

 $rows2 = mysql_fetch_assoc($sql);

on results.php。

如果有人能够阐明为什么它不起作用那就太好了。 我是MySQL的新手,我花了一天时间来解决这个问题!如果需要更多信息,我会尽快尝试并提供。

3 个答案:

答案 0 :(得分:4)

您应该更改 test.php 中的method="post"或更改 results.php中的$roomId = $_GET['roomId'];$roomId = $REQUEST['roomId'];

答案 1 :(得分:0)

您的操作页面为result.php而不是results.php,如果您希望代码能够正常运行,请将表单更改为POST

<Form name ="form1" Method ="post" Action ="result.php">

   room number: <inpyt type = "text" Name ="roomId">
   <input TYPE = "Submit" Name = "Submit" VALUE = "Go">

</FORM>

并在php中,首先检查你是否有这样的价值:

if(isset($_POST['roomId'])) $roomId = $_POST['roomId'];

答案 2 :(得分:0)

$sql = mysql_query("SELECT * FROM forestcourt WHERE id=1");

如果您希望上面的代码或$_POST['roomId'] = $roomid之类的代码可以使用。

而不是以下内容:

$sql = mysql_query("SELECT * FROM forestcourt WHERE id='1'"); 

$sql = mysql_query("SELECT * FROM forestcourt WHERE id='$roomid'");

你可能已经解决了但是对其他人来说。

当然,form方法必须是POST或GET相应的。