1

ページに電子メールアドレスのリストがあり、電子メールアドレスをクリックすると、その電子メールアドレスが受信者フィールドに事前に入力された電子メールフォームが開くように機能を追加したいと思います。これどうやってするの?

これは私がすでに持っているフォームです。

<?php echo $this->Form->create('Email', array('action'=>'email_send.php'));
    echo $this->Form->input('email',array('label'=>'To: ')); //i want the email address i clicked on to be automatically placed here.
    echo $this->Form->input('message',array('type'=>'textarea','label'=>'Message: '));
echo $this->Form->end('Send'); ?>

また、email_send.phpファイルを構造化する方法や、変数を渡して検証を実行するための最良の方法に関するヒントがあれば、それを使って手を使うこともできます。

4

2 に答える 2

1

ケーキでは、このように少し達成することができます。明らかに改善を行うことができますが、それは例です。

EmailsController.php(コントローラー)

function list_emails() {
    $this->set('emails', $this->EmailModel->find('all', array('fields' => 
                                                         array('id', 'email'))));

}

list_emails.ctp(表示)

echo '<ul>';
foreach($emails as $email) {
   echo '<li>' . $this->Html->link('Email: ' . $email['EmailModel']['email'],
          array('action'=>'process', $email['EmailModel']['id'])) . '</li>'; ?>
}
// generates a list of emails in the format:
// <a href="emails/process/1">Email: foo@foo.com</a>
echo '</ul>';

EmailsController.php(コントローラー)

function process($email_id = null) {
    if(!$email_id) { 
        $this->redirect(array('action'=>'show_emails')); // no id specified 
    }
    // check if the form has been submit, otherwise, get the info for the view..

    $this->EmailModel->id = $email_id;
    $email = $this->EmailModel->read();
    $this->set('email', $email);   
}

これで、情報が表示されますprocess

// echo $this->Form->input('email',array('label'=>'To: ','value'=>$email['EmailModel']['email']));

でもそれは本当に大変な作業です。また、値はいつでも変更できることを忘れないでください。これを少し無意味にします

于 2012-09-13T08:04:01.603 に答える
1

このコードを試してください:

コントローラー内

$this->set('email',$email); //$email is the mail address from database

ビューで

echo $this->Form->input('email',array('label'=>'To: ','value'=>$email));

また

メールを「$this->request-> data」配列に入れると、次のように自動的に表示されます。これをコントローラーに追加する必要があります

$this->request->data['Email']['email'] = 'YOUR_EMAIL_FROM_DATABASE';
于 2012-09-13T05:26:55.470 に答える