簡體   English   中英

在Joomla中提交后獲取表單字段

[英]Get form fields after submit in Joomla

我正在使用Flexi自定義代碼創建一個按鈕來向我發送電子郵件,但是它似乎是隨機工作的。 我幾乎從來沒有獲得$sendMail參數。 但有時它能奏效,並且我收到電子郵件...

<?php
JHtml::_('behavior.formvalidator');

$jinput = JFactory::getApplication()->input;
$sendMail = $jinput->get('sendMail', '', 'STRING');

if(isset($sendMail) && $sendMail == 'sendNow'){

    $aId = JRequest::getVar('id');

    $html = "";
    $html .= "<h2>".$aId."</h2>";
    $html .= "<p>test</p>";

    $subject = "Request";
    $from = array("noreply@test.com", "Website Contact");

    $mailer = JFactory::getMailer();
    $mailer->setSender($from);
    $mailer->addRecipient("MY EMAIL");
    $mailer->setSubject($subject);
    $mailer->setBody($html);
    $mailer->isHTML();
    $mailer->send();

    $submitted = "";
    $submitted .= "Request confirmed";
    echo $submitted;

}else{?>

<form action="<?php echo JUri::base() . basename($_SERVER['REQUEST_URI']); ?>" method="POST" name="adminForm" id="sendMailForm" class="form-validate">
<field type="hidden" value="sendNow" name="sendMail" class="required" />
<button type="submit" class="validate">SEND MAIL</button>
</form>

<?php } 
?>

我正在使用Joomla 3.8.5

很多奇怪的事情,但是您可以先將“ field”替換為“ input”。 並且不使用JRequest,您已經有$ jinput。

另一個問題可能是您具有重定向,將發布請求更改為獲取請求。 打開(chrome)調試器,並檢查網絡標簽(當您在那里時,檢查sendMail輸入確實存在)

我最終使用CacheControl禁用了頁面上的緩存。

我可以從$_SERVER[“REQUEST_URI”]獲取所有$_GET參數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM