Can someone please show me an example code for a Search Box on the same page as search results. I am trying to do a simple search form that presents a search box and a Submit button. When I click on Submit I do see my search results. I do wish to retain the search box as well in my search results. I copied the html to my 'on submit' but the submit does not do anything.
My HTML:
My HTML:
<h2>Search</h2>
Seach for: <input type='text' name='find' /> in
<Select NAME='field'>
<Option VALUE='Fname'>First Name</option>
<Option VALUE='Lname'>Last Name</option>
</Select>
<input type='hidden' name='searching' value='yes' />
<input type='submit' name='search' value='Search' />
On Submit:<?
$searching = $_POST['searching'];
$find = $_POST['find'];
//This is only displayed if they have submitted the form
if ($searching =='yes')
{
echo '<h2>Results</h2><p>';
//If they did not enter a search term we give them an error
if ($find == '')
{
echo '<p>You forgot to enter a search term';
exit;
}
// Otherwise we connect to our Database
mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('joomla15') or die(mysql_error());
// We preform a bit of filtering
$find = strtoupper($find);
$find = strip_tags($find);
$find = trim ($find);
//Now we search for our search term, in the field the user specified
$data = mysql_query('SELECT * FROM jos_chronoforms_1 WHERE Fname like '%$find%'');
//And we display the results
while($result = mysql_fetch_array( $data ))
{
echo $result['Fname'];
echo ' ';
echo $result['Lname'];
echo '<br>';
echo '<br>';
}
//This counts the number or results - and if there wasn't any it gives them a
$anymatches=mysql_num_rows($data);
if ($anymatches == 0)
{
echo 'Sorry, but we can not find an entry to match your query<br><br>';
}
//And we remind them what they searched for
echo '<b>Searched For:</b> ' .$find;
}
?>
Hi rohit,
I think the logic for this is to re-display the Form HTML but including the search results.
If you create a dummy field 'message' in your form then you can check if it has contents to display. Form HTML:
Bob
I think the logic for this is to re-display the Form HTML but including the search results.
If you create a dummy field 'message' in your form then you can check if it has contents to display. Form HTML:
<h2>Search</h2>
Seach for: <input type='text' name='find' /> in
<Select NAME='field'>
<Option VALUE='Fname'>First Name</option>
<Option VALUE='Lname'>Last Name</option>
</Select>
<input type='hidden' name='searching' value='yes' />
<input type='submit' name='search' value='Search' />
<input type='hidden' name='message' value='<?php echo $_POST'message']; ?>' />
<?php
if ( $_POST['message'] ) (
echo $_POST['message'];
}
?>
and your OnSubmit code is like this <?php
$searching = $_POST['searching'];
$find = $_POST['find'];
$message = '';
//This is only displayed if they have submitted the form
if ( $searching == 'yes' ) {
$message .= '<h2>Results</h2><p>';
//If they did not enter a search term we give them an error
if ($find == ''«») {
$message .= '<p>You forgot to enter a search term';
showform($_POST);
}
// Otherwise we connect to our Database
mysql_connect('localhost', 'root', ''«») or die(mysql_error());
mysql_select_db('joomla15'«») or die(mysql_error());
// We preform a bit of filtering
$find = strtoupper($find);
$find = strip_tags($find);
$find = trim ($find);
//Now we search for our search term, in the field the user specified
$data = mysql_query('SELECT * FROM jos_chronoforms_1 WHERE Fname like '%$find%''«»);
//And we display the results
while($result = mysql_fetch_array( $data ))
{
$message .= $result['Fname'].' '.$result['Lname'].'<br /><br />';
}
//This counts the number or results - and if there wasn't any it gives them a
$anymatches=mysql_num_rows($data);
if ($anymatches == 0)
{
$message .= 'Sorry, but we can not find an entry to match your query<br><br>';
}
//And we remind them what they searched for
$message .= '<b>Searched For:</b> $find';
}
$_POST['message'] = $message;
showform($_POST);
?>
No tested, but this should work. There was a similar form posted here by Sofia? I think.
Bob
This topic is locked and no more replies can be posted.