0

ボタンに「onclick」アクションが必要なので、次のようにリダイレクトされます。

 location/[textfield_data]

私はcakephpを使用していますが、現時点で最も近いのはこれでした。

echo $this->Form->input('link', array('label' => false, "class" => "form-control input-medium", "placeholder" => __('Procurar')));

echo $this->Form->button('', array('class' => 'btn btn-primary icon-search icon-white' ,'onclick' => "location.href='/'"));

私のコードでは、cakephp は私にこれを取得しています:

/[view]?data%5Blink%5D=

[ビュー] は、私がいる現在のページです。

解決策を見つけました

私はこの方法で解決策を見つけました。

echo $this->Form->input('link', array('label' => false, "class" => " form-control input-medium", "placeholder" => __('Procurar'), 'id' => 'search'));

echo $this->Form->button(null, array('class' => 'btn btn-primary icon-search icon-white' ,'onclick' => "location.href='/mywantedurl/'+document.getElementById('search').value;"));

form->create または form->end を使用しなかったことに注意してください。それ以外の場合は機能しません。

4

2 に答える 2

1

JavaScript を使用する必要があるのはなぜですか? GET代わりにメソッドを使用してください。GET検索のリクエストの代わりに使用する必要があるPOSTため、リクエストをブックマークすることができます。

$this->request->queryの代わりに を使用してこれを実現し$this->request->dataます。

<?php
// app/View/Locations/index.ctp
echo $this->Form->create('Location', array('type' => 'get'));
echo $this->Form->input('Location.keywords');
echo $this->Form->end('Search');

そして、対応するコントローラーで:

<?php
// app/Controller/LocationsController.php
class LocationsController extends AppController {

    public function search() {
        if (!isset($this->request->query['keywords'])) {
            throw new BadRequestException();
        }

        $results = $this->Location->findByKeywords($this->request->query['keywords']);

        $this->set('results', $results);
    }
}

データベース テーブルの実際のスキーマやモデル名はわかりませんが、上記は正しい方向を示しているはずです。

于 2013-11-15T11:17:40.150 に答える