0

YESOD アプリの構成方法に関する一般的なガイダンスが必要です。アプリをできるだけ「RESTful」なデザインに保ちたいと思います。

ユーザーは他のすべてのユーザーを検索して、接続するユーザーを見つけます。Hamlet を使用して可能な接続を示します。

  $forall (pid, person, mEmail, mPhone) <- displayPeopleRecs
    <p>
        <a href=@{CreateFundR pid}>#{personNickName person} 
           $maybe email <- mEmail
              #{emailEmail email}
           $maybe phone <- mPhone
              #{phoneNumber phone}

ただし、ユーザーがリンクをクリックすると、/createfund/ ページに移動しますが、これは私が望んでいるものではないため、POST などを使用したいと考えています。

ここで正しい解決策を説明できる人はいますか? 検索で生成されたフォームを各人に作成し、可能な人ごとに送信ボタンを用意しますか? それはばかげているようです。Julius を使用し、リンクの onclick ハンドラーを変更して、GET の代わりに POST を /createfund に送信する方がよいでしょうか?

私の設定/ルートからの関連行は次のとおりです。

/createfund/#PersonId CreateFundR POST

ところで、フォームと送信ボタンを使用してこれを機能させる方法を確認できます。

  $forall (pid, person, mEmail, mPhone) <- displayPeopleRecs
    <p>
      <form method="post" action="@{CreateFundR pid}">
        <table>
          <tr>
            <td>
              #{personNickName person} 
              $maybe email <- mEmail
                <br>
                #{emailEmail email}
              $maybe phone <- mPhone
                <br>
                #{phoneNumber phone}
            <td>
              <input type="submit" value="Create Fund">

それは私のニーズには合っていますが、ユーザーがリンクをクリックするだけで済むようにしたいと思っています。これはデザインが悪いのでしょうか?それとも単に好みの問題ですか?

4

1 に答える 1

1

AForm / MForm を使用する場合、フォームは (Tables または Divs を使用して) 自動的に生成されます。それはあなたのために物事を単純化するはずです。

手動でスタイルを設定したい場合は、フォームを使用するときに次のようにすることができます:ボタンをリンクのように見せるには? . とにかく、ほとんどの人はそのようなアクションのためにスタイル付きのボタンを作成することになります (編集、削除ボタンなどを備えた標準の CRUD アプリを考えてみてください)。

リンクのクリックをトラップして ajax Post を実行すると、javascript が無効になっているとうまく機能しなくなるので、注意が必要です。

HTH

于 2013-07-31T04:46:39.020 に答える