ChronoEngine.com homepage

Forums

Please write a review for the extension you are using on the Joomla extensions directory before posting a new question as we are being spammed by many negative reviews.

Thank you for your support!

Search Box along with Search results

rohit 22 Apr, 2008
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:
<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; 
} 
?>
GreyHead 22 Apr, 2008
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:
<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
rohit 22 Apr, 2008
Thanks a ton, this worked.
This topic is locked and no more replies can be posted.

2Checkout.com

2CheckOut.com Inc. (Ohio, USA) is an authorized retailer for goods and services provided by ChronoEngine.com