Ich möchte einen Wert zurück zu AJAX vom Controller zurückgeben, wenn und wenn die E-Mail gesendet wird. Im Folgenden finden Sie einen Code.Wie man zurückkommt, wenn E-Mail erfolgreich gesendet wird oder Fehler in Codeigniter AJAX
Im Folgenden Code möchte ich die Flash-Daten in Sitzung setzen und es sollte die entweder der Bedingung festgelegt und es in AJAX Rückruf
COntroller
public function send_reply(){
$data = array(
'from_email' => "[email protected]",
'recipient' => $this->input->post('recipient'),
'from_name' => "jeeva",
'subject' => $this->input->post('subject'),
'message' => $this->input->post('message'),
);
echo json_encode($data);
$this->load->library('email');
$this->email->from($data['from_email'], $data['from_name']);
$this->email->to($data['recipient']);
$this->email->subject($data['subject']);
$this->email->message($data['message']);
//Send mail
if($this->email->send()) {
$this->session->set_flashdata("email_sent","<span> * Email sent successfully. </span> ");
//$this->load->view('adminhp');
} else {
$this->session->set_flashdata("email_sent","<span> * Error in sending Email.</span> ");
// $this->load->view('adminhp');
}
}
Ajax-Code
// Ajax post for email sending
$(document).ready( function() {
$(".mailsub").click(function(event) {
event.preventDefault();
var recipient = jQuery(this).closest('form').find('input.recipient').val();
var subject = jQuery(this).closest('form').find('input.subject').val();
var message = jQuery(this).closest('form').find('textarea.message').val();
jQuery.ajax({
type: "POST",
url: "<?php echo base_url(); ?>" + "index.php/user_authentication/send_reply",
dataType: 'json',
data: {recipient: recipient, subject: subject, message:message},
success: function(result) {
if (result)
{
// Show Entered Value
jQuery("div#result").show();
jQuery("div#rslt").html("Sent Successfully");
console.log("Success");
}
}
});
});
});
Ich möchte es die Fla sh Daten in folgendem Code
echo "<br/>";
echo "<div id='result' style='display: none'>";
echo "<div id='rslt' style='display:inline'></div>";
// echo $this->session->flashdata('email_sent');
echo "</div>";
echo "<br/>";
Das Setzen von 'flash_data' wird nicht helfen, Ihr Ziel zu erreichen. Sie müssen vom Controller für den Zugriff durch "Ajax" echo. Nachdem Sie von PHP geantwortet haben, können Sie den Wert mit 'alert (result)' innerhalb des 'ajax success' testen. – Arun
Erfolg ist in Ordnung. Was passiert, wenn die E-Mail nicht gesendet wird? kannst du mir bitte einen schnipsel geben. das wäre sehr hilfreich – Jeeva
Um Flashdata zu verwenden, sollten Sie 'redirect()' –