2

私は Cakephp を使い始めましたが、次のビルドで問題が発生しています: アプリケーションのメイン ページに、作成されたさまざまなビューにリダイレクトする 4 つのシンプルなボタンを配置したいと考えています。どうやってやるの?

私はこれを試しました:

   <?php
echo $this->Form->create('Post');
echo $this->Form->button('Redirect1', array('type'=>'button'));
echo $this->Form->button('Redirect1', array('type'=>'button'));
echo $this->Form->button('Redirect1', array('type'=>'button'));
echo $this->Form->end();
?>

しかし、送信フォームは必要ないと思いますよね?しかし、検索で他の方法は見つかりませんでした。ボタンをクリックしてページを変更することはできませんか?

ありがとうございました

4

9 に答える 9

10

とにかく、フォームボタンを単純なリンクとして使用しないでください。ジャスティンが言ったように、ボタンを作成してから、javascriptまたはjQueryを追加して、必要に応じて機能させます。(ただし、通常はコードで外部の.jsファイルを使用することを好みます)

別のオプションとして、リンクにスタイルを追加して、ボタンの外観を与えることができます。次に例を示します。

echo $this->Html->link("Demo", array('controller' => 'yourcontroller','action'=> 'youraction', $possibleParameter), array( 'class' => 'button'))

ボタンは次のように定義できます。

a.button {
    color: #6e6e6e;
    font: bold 12px Helvetica, Arial, sans-serif;
    text-decoration: none;
    padding: 7px 12px;
    position: relative;
    display: inline-block;
    text-shadow: 0 1px 0 #fff;
    -webkit-transition: border-color .218s;
    -moz-transition: border .218s;
    -o-transition: border-color .218s;
    transition: border-color .218s;
    background: #f3f3f3;
    background: -webkit-gradient(linear,0% 40%,0% 70%,from(#F5F5F5),to(#F1F1F1));
    background: -moz-linear-gradient(linear,0% 40%,0% 70%,from(#F5F5F5),to(#F1F1F1));
    border: solid 1px #dcdcdc;
    border-radius: 2px;
    -webkit-border-radius: 2px;
    -moz-border-radius: 2px;
    margin-right: 20px;
    cursor:pointer;
}
a.button:hover{
    color: #333;
    border-color: #999;
    -moz-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.2); 
-webkit-box-shadow:0 2px 5px rgba(0, 0, 0, 0.2);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}
a.button:active {
    color: #000;
    border-color: #444;
}
于 2012-11-21T11:22:49.197 に答える
5

同様の問題を検索しているときに、その質問を見つけました。私の意見では、それを行う最も簡単な方法は次のとおりです。

$this->Html->link($this->Form->button('Button'), array('action' => 'viewSomethin',$id), array('escape'=>false,'title' => "Click to view somethin"));

多分それは誰かにとって役立つでしょう。

于 2013-12-06T10:32:10.383 に答える
2

リンクに Html ルール属性を追加できます。このルールは、リンクをボタンとして設定します。

echo $this->Html->link('Blogs', 
    array('action' => 'add'), 
    array(
        'bootstrap-type' => 'primary',
        'class' => 'btn btn-lg btn-primary btn-block',
        // transform link to a button
        'rule' => 'button'
    )
);
于 2015-07-24T08:38:46.460 に答える
1

あなたが使用することができます

<?php echo $this->Html->link('ADD New One', '/controllername/functionname')?>
于 2012-11-21T10:50:04.107 に答える
0

最善の解決策は、次のような postButton を使用することだと思います。

echo $this->Form->postButton('Text Button', array('controller'=>'controllername','action'=>'action_to_do'));

「controllername」と「action_to_do」を必要なものに変更する必要があります

于 2014-10-08T23:49:21.817 に答える