0

セッション配列を使用してそこにデータを保存することになり、後で再度参照できるようになりました。各フォームからの投稿データをこの配列に追加し、後で else ブロックで参照しました。助けてくれてありがとう!

学校のプロジェクトで CodeIgniter を使用しています。PHP の経験はありますが、このフレームワークは比較的新しいものです。1 ページで 2 つのフォームを使用するのに問題があります。

アーティストのドロップダウンを表示するフォームが 1 つあります。このフォームの送信ボタンをクリックすると、同じページの 2 番目のフォーム (別のドロップダウン) が、最初のドロップダウンで選択されたアーティストに属するポートフォリオで更新されます。

現在、テスト目的で各フォームから値をエコーし​​ようとしています。後で他の機能を実装します。私の問題は、2 番目のフォームが送信された後、最初のフォームの投稿値が変更されることです。2 番目のフォームを送信する前に、最初のフォームで選択した値をエコーすると、選択された値が表示されます。両方のフォームが送信された後に最初のフォームの値をエコーすると、そのドロップダウンから最初に使用可能な値が表示されます。

これらの両方のフォームから値を取得し、両方のフォームが送信された後でそれらを使用できるようにする必要があります。そのため、値を使用する必要があるときに値を正しく変更することはできません。明らかに、助けていただければ幸いです。ありがとうございます。

コントローラ

public function formtest(){

    //Making a call to the model to get an array of artists from the DB
    $data = $this->depot_model->get_artists_list();

    $this->form_validation->set_rules('artist', 'Artist');// Commenting this out for now, 'required');
    $this->form_validation->set_rules('ports', 'Portfolios', 'required');

    if ($this->form_validation->run() == FALSE)
    {
        //Building the artists dropdown form
        $data['data'] = form_open('formtest', 'class="superform"')
        . form_label('Artist<br/>', 'artist')
        . form_dropdown('artist', $data)
        . form_submit('mysubmit', 'Submit')
        . form_close();

        //Setting up a temp array of the selected artist's portfolios
        $ports = $this->depot_model->get_portfolios(url_title($data[$this->input->post('artist')]));

        //Culling out the names of the portfolios from my temp array
        $newdata = array();
        foreach($ports as $port){array_push($newdata, $port['name']);}

        //Building the artist's portfolio dropdown
        $newdata['data'] = form_open('formtest', 'class="superform"')
        . form_label('Portfolios<br/>', 'ports')
        . form_dropdown('ports', $newdata)
        . form_submit('mysubmit', 'Submit')
        . form_close();

        //Send the information to my view
        $this->load->view('formtest', $data);
        $this->load->view('formtest', $newdata);


    }
    else
    {
        //This echos out the first available value from my dropdown rather than the one I selected.
        echo $data[$this->input->post('artist')];
        echo "success";
    }

}
4

1 に答える 1