0

我有两个 php 页面。它们都返回一些 MySQL 表。

我使用 page1.php 从数据库中返回一个名为“student”的表。我现在正在尝试实现一个搜索功能,该功能将帮助人们在学生表中搜索特定名称。

我为搜索创建了一个文本框(在 page1.php 中)

<INPUT TYPE = "TEXT" VALUE ="search">
<INPUT TYPE = "Submit" Name = "Submit1" VALUE = "Search">

我要做的是:当用户单击“搜索”按钮时,它会调用 page2.php 并将文本框中的值传递给 page2.php 中名为“sname”的变量

在 page2.php

我有 :

$sname = "matt"; /*<-- Need dynamic */
$result = mysql_query("Select * from student where phone like '%$sname%'");

现在我手动输入$sname. 如何从 page1.php 中的文本框中获取该变量的值?

4

7 回答 7

2

将page1.php中的代码设置为:

<form action='page2.php' method='post'>
<INPUT TYPE = "TEXT" NAME='search' VALUE ="search">
<INPUT TYPE = "Submit" Name = "Submit1" VALUE = "Search">
</form>

现在在第 2 页中,您可以使用 $_POST['search'],例如:

$sname = $_POST['seach'];
于 2013-04-29T13:09:59.997 回答
1

第1页.php

<FORM ACTION='page2.php' METHOD='POST' >
<INPUT TYPE = "text" name="sname" VALUE ="search">
<INPUT TYPE = "Submit" Name = "Submit1" VALUE = "Search">
</form>

现在导航到第 2 页后:此代码可以完成这项工作

Page2.php

//Check if the paramerter is set and it is not equal to NULL
if( isset($_POST['sname']) && $_POST['sname'] != NULL )
{
     //now load the variable
     $sname = $_POST['sname'];

     //Prevent SQL injection..
     $sname = addslashes($sname);

     $query = "select * from table_name where column_name like '%$sname%'";

     //Execute the query and store in $result
     $result = mysql_query($query);

     // Fetch values from result
     while ( $rows = mysql_fetch_array[$result] )
     {
           //Get the values here..
     }
}

我假设您非常了解 SQL 注入。

于 2013-04-29T13:24:22.777 回答
1

page1.php

<form action="page2.php" method="post">
<INPUT TYPE = "text" name="sname" VALUE ="search">
<INPUT TYPE = "Submit" Name = "Submit1" VALUE = "Search">
</form>

在 page2.php 上

$sname= $_POST['sname']
于 2013-04-29T13:09:36.027 回答
1

您的 HTML 缺少元素 FORM

<form action="page2.php" method="GET">
    <INPUT TYPE = "TEXT" VALUE ="search" name="text">
    <INPUT TYPE = "Submit" VALUE = "Search">
</form>

或者

<form action="page2.php" method="POST">
    <INPUT TYPE = "TEXT" VALUE ="search" name="text">
    <INPUT TYPE = "Submit" VALUE = "Search">
</form>

第一个方法返回 url page2.php?text=test。您可以使用全局 $_GET 值访问变量

第二种方法返回 url page2.php,但将数据保存在全局 POST 变量 $_POST 中。

第一种方法主要是用搜索的东西来完成的,第二种方法是用“私人”的形式来完成的。当您希望人们能够共享 url 时,您应该使用 get,否则使用 post。

另外我建议查看 sql injection,来自 php.net 的 SQL injection

于 2013-04-29T13:12:22.380 回答
1

假设您的输入是一种形式

<form action="page2.php" method="post">
    <INPUT TYPE = "TEXT" VALUE ="search" name="search">
    <INPUT TYPE = "Submit" Name = "Submit1" VALUE = "Search">
</form>

然后你可以通过

$sname = $_POST['search'];

请注意,我已name在您的文本输入中添加了一个属性,这是 $_POST 数组中的值所必需的

于 2013-04-29T13:10:16.967 回答
0

把这些值放在一个表单中,给文本字段一个名字,比如 name="fieldname" 并给它一个方法,比如 post,然后像这样访问值

$sname = $_POST['fieldname'];
于 2013-04-29T13:10:35.393 回答
0
<form action='page2.php' method='post'>
<INPUT TYPE = "TEXT" VALUE ="name">
<INPUT TYPE = "SUBMIT" VALUE ="search">
<INPUT TYPE = "Submit" Name = "Submit1" VALUE = "Search">

在 page2.php

$name=$_POST['name']
于 2013-04-29T13:15:22.487 回答