我在页面上有一个电子邮件地址列表,我想添加这些功能,以便在点击电子邮件地址时打开一个电子邮件表单,其中该电子邮件地址已预先填写在收件人字段中。我怎么能这样做?
这是我已经提供的表格;
<?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文件以及传递变量和执行验证的最佳方法有任何提示,我也可以使用它。
答案 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)
在蛋糕中,你可以做到这一点..显然可以做出改进,但这是一个例子:
function list_emails() {
$this->set('emails', $this->EmailModel->find('all', array('fields' =>
array('id', 'email'))));
}
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>';
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']));
但真的很多工作。并且不要忘记值可以随时改变;使这有点无意义