4つのドロップダウンと送信ボタンのあるフォームがあります。ユーザーが送信ボタンをクリックすると、入力/出力を処理するコントローラーに移動して、ユーザーに選択肢を提供しますが、URIは正しいです。
ドロップダウンは、ユーザーの選択に応じてAjaxから動的に生成され、最初のドロップダウンを除外します。彼らは絶対にうまく働いています。
ユーザー入力を処理するメソッドは、このコントローラーにあります。/app/controllers/shop/kategorier
、indexメソッドは次のようになります。
public function index($fabrikat, $type, $model, $produktnr = '0')
{
// get all the data from the model
$data['all'] = $this->fetch->get_kategorier($fabrikat, $type, $model, $produktnr);
print_r($data['all']);
}
私の目標は次のとおりです。ユーザーが送信ボタンを押したときに、パラメーターを含む正確なURLでページを表示することはできません。http://app.com/shop/kategorier/index/LG/WASH/FL9834X/0/それが私が本当に欲しいすべてです。
注:このURLへの手動アクセスは正常に機能し、コントローラー/モデルはパラメーターを適切に処理します。
どうすればこれを達成できますか?私は2つのことを試みましたが、どちらも失敗しました。ある種。
jQueryを試してみて、すべてのパラメーターが'/'区切り文字でエンコードされたURL文字列を生成し、送信時に.attr('href')を変更しました。しかし、それは悪夢でした。なぜなら、$modelのいくつかは例えばである可能性があるからです。
'CE1000C-T / XEE'
等Kategorierコントローラーで「プロキシ」メソッドを作成して、すべての入力->投稿を取得し、それらをに追加しようとしました
redirect('kategorier/'.$fabrikat.'/'.$etc)
が、それはかなり愚かでした。
/kategorier?fabrikat=LG&type=WASH
などのようなクエリ文字列は使用したくない
私のフォームは次のようになります。
<?php echo form_open('shop/kategorier/'); ?>
<select id="fabrikat" name="fabrikat">
<option name="0">Vælg Fabrikat</option>
<?php foreach ($fabrikater as $f) : ?>
<option value="<?php echo $f->Fabrikat; ?>" name="<?php echo $f->Fabrikat; ?>"><?php echo $f->Fabrikat; ?></option>
<?php endforeach; ?>
</select>
<select id="type" name="type">
</select>
<select id="model" name="model">
</select>
<div id="produktnummer-wrap" style="display:none">
<select id="produktnummer" name="produktnummer">
<option name="0" value="">Vælg Produktnummer</option>
</select>
</div>
<?php echo form_submit('findparts', 'Find Reservedele'); ?>
<?php echo form_close(); ?>
私はどういうわけか物事を複雑にしすぎていると思いますが、今のところ私はまっすぐに考えることができません。何でも詳しく説明させていただきます。よろしくお願いします。