问题描述:

I am learning PHP and in the process of making a search engine. The following code will not echo the users input, in the search field, on the results page.

The search page:

<!DOCTYPE html>

<html>

<head>

<title>Search Engine</title>

<style type="text/css">

body {

background:#F0FFFF;

margin:-80px;

}

form {

margin:25%;

}

</style>

</head>

<body>

<form action="result.php" method="post">

<input type="text" name="user_query" size="80" placeholder="Enter Search Here" />

<input type="submit" name="search" value="Search Now" />

</body>

</html>

The results page:

<!DOCTYPE html>

<html>

<head>

<title>Results</title>

<style type="text/css">

.results {

margin:5%;

}

</style>

</head>

<body bgcolor="#F0FFFF">

<form action="result.php" method="get">

<span><b>Enter Query Here:</b></span>

<input type="text" name="user_keyword" size="80" />

<input type="submit" name="result" value="Search Now" />

</form>

<?php

if(isset($_GET['search'])) {

$get_value = $_GET['user_query'];

echo "<div class='results'>

$get_value;

</div>";

}

?>

</body>

</html>

Can someone tell me why the user's input is not being echoed when the search is run?

网友答案:

If you using method=post In form tag you must receive you data as $_POST Also method=get use $_GET

Edit this lines in result page to this

<?php

    if(isset($_POST['search'])){
    $get_value = $_POST['user_query'];

    echo "<div class='results'>{$get_value}</div>";

    }

?>
网友答案:

well the problem lies in your form tag you should have used method="get" if you want to get some data from database and if you are using method="post" you should have to use $_POST['search'] so your form tag shuld have to be like this

<form action="result.php" method="get">

and if you are going to use method="post" anyway than your $_GET['search'] should have to be $_POST['search'] but i will suggest you to use method="get" for searching query from database

相关阅读:
Top