cakephp预填邮件表格,带地址

时间:2012-09-12 16:17:53

标签: forms email cakephp

我在页面上有一个电子邮件地址列表,我想添加这些功能,以便在点击电子邮件地址时打开一个电子邮件表单,其中该电子邮件地址已预先填写在收件人字段中。我怎么能这样做?

这是我已经提供的表格;

<?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文件以及传递变量和执行验证的最佳方法有任何提示,我也可以使用它。

2 个答案:

答案 0 :(得分:1)

试试这段代码:

控制器中的

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

在视图中

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

您可以将电子邮件放入'$ this-&gt; request-&gt; data'数组中,它会自动填充到视图中,如下所示: 你应该在你的控制器中添加它

$this->request->data['Email']['email'] = 'YOUR_EMAIL_FROM_DATABASE';

答案 1 :(得分: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']));

但真的很多工作。并且不要忘记值可以随时改变;使这有点无意义

相关问题