J'ai un formulaire de recherche comme celui-ci dans un fichier form.php. Cela fonctionne très bien, le problème auquel je suis confronté est que j'utilise la classe/méthodes (fonctions). Par exemple j'ai cette méthode qui appelle le logo et la barre de manu.actualiser la page sans rediriger
//$this->output is just a method that echos, that's all it does
function header()
{
$this->output('<DIV CLASS="header">');
$this->logo();
include('form.php');
$this->links();
$this->header_clear();
$this->output('</DIV>');
}
Comme ci-dessus, la forme montre parfaitement, mais lorsque je choisis une catégorie qu'il me faut pour form.php, et il ruine tout. (Form.php est juste une forme)
Je sais que le problème est ici
onChange="javascript:this.form.action='form.php';
this.form.submit()
Sans javascript je ne pouvais pas obtenir les valeurs de la catégorie, la page n'est pas rafraîchissante, donc $ _POST [ « cat » ] est vide.
Quelle est la meilleure façon de rafraîchir la page sans me prendre à un autre?
Je sais probablement tout cela confus, juste garder avec moi.
<form enctype="multipart/form-data" name="form" id="form" action="form.php"
method="get">
<SELECT name="cat" onChange="javascript:this.form.action='form.php';
this.form.submit()">
<option value="" >Categories</option>
<?php
$z = "0" ;
//Select categories form database
$category =db_select_categories($z);
if(is_array($category))
{
foreach($category as $rowc)
{
$id_cat = htmlentities($rowc['id_cat'], ENT_QUOTES);
$cat_name = htmlentities($rowc['cat_name'], ENT_QUOTES, 'utf-8');
$cat_name = stripslashes($cat_name);
echo "<option style=\"background-color:#FFCC99\" disabled>".$cat_name."
</option>";
$categories = db_select_categories($id_cat);
if(is_array($categories))
{
foreach($categories as $row)
{
$id = htmlentities($row['id_cat'], ENT_QUOTES);
$name = htmlentities($row['cat_name'], ENT_QUOTES, 'utf-8');
$name = stripslashes($name);
if ($cat == $id)
{
echo "<option value='".$id."'selected> ".$name."</option>";
}
else
{
echo "<option value=".$id."> ".$name."</option>";
}
}
}
}
}
echo "</SELECT>";
?>
<div>
<?php
if(!empty($cat))
{
//Outputs a populated select option depending on category
display_search_options($cat);
}
?>
</div>
S'il vous plaît fixer votre tabbing. –
Vous devrez utiliser AJAX afin de soumettre un formulaire asynchrone. Puis gérer la réponse de cet appel. C'est le seul moyen de ne pas actualiser la page entière. – evasilchenko
On m'a suggéré d'utiliser AJAX, mais je n'ai jamais touché AJAX auparavant. Des liens vous pouvez me diriger vers? –