0

ファイル form.php にこのような検索フォームがあります。私が直面している問題は、クラス/メソッド(関数)を使用することです。たとえば、ロゴとメニューバーを呼び出すこのメソッドがあります。

     //$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>');
        }         

上記のように、フォームは完全に表示されますが、カテゴリを選択すると form.php に移動し、すべてが台無しになります。(form.php は単なるフォームです)

私は問題がここにあることを知っています

      onChange="javascript:this.form.action='form.php'; 
        this.form.submit()

JavaScript がないと、カテゴリの値を取得できませんでした。ページが更新されていないため、$_POST['cat'] は空です。

別のページに移動せずにページを更新するより良い方法は何ですか?

私はおそらくこれがすべて混乱していることを知っています。

     <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>  
4

1 に答える 1

0

フォームに行きたくない場合は、別の場所に移動させてください...

 onChange="javascript:this.form.action='index.php'; 
        this.form.submit()
于 2013-06-17T15:03:08.337 に答える