formulario de contacto AJAX en CodeIgniter
-
25-09-2019 - |
Pregunta
Pocas preguntas:
Estoy usando IC y jQuery AJAX.
En mi código de abajo, ensamblo dataString
, que por defecto, se añade a la URL como una cadena de consulta.
He cambiado el "tipo" de AJAX a POST, por lo que mi pregunta es - ¿cómo hacer que el acceso dataString
en mi aplicación CI
Parece que todavía tengo que usar
$name=$this->input->post('name')
Lo que a mí, hace que la configuración redundante dataString
?
-
Me he intentado buscar pero realmente no puedo encontrar nada concreto.
¿Sería posible todavía hacer uso de la biblioteca de validación IC y AJAX?
if($this->form_validation->run() == FALSE)
{
// what can i return so that my CI app shows errors?
}
Normalmente se vuelva a cargar el formulario de contacto o redirigir al usuario. En un mundo ideal, me gustaría que los mensajes de error que se muestra al usuario.
Jquery:
$(document).ready(function($){
$("#submit_btn").click(function(){
var name = $("input#name").val();
var company = $("input#company").val();
var email = $("input#email").val();
var phone = $("input#phone").val();
var message = $("textarea#message").val();
var dataString = 'name=' + name + '&message=' + message + '&return_email=' + email + '&return_phone=' +
phone + '&company=' + company;
var response = $.ajax({
type: "POST",
url: "newsite/contact_ajax/",
data: dataString
}).responseText;
//$('#contact').hide();
//$('#contact').html('<h5>Form submitted! Thank you!</h5><h4>We will be in touch with you soon.</h4>');
//$('#contact').fadeIn('slow');
return false;
});
});
Espero haber sido lo suficientemente claro - si alguien tiene un ejemplo digno de un formulario de contacto de CI que sería grande. hay cosas mixta en Internet, pero nada de lo que golpea a todas las cajas.
gracias
Solución
Como he escrito en los comentarios, no es necesario establecer un dataString
desde jQuery puede hacer por usted:
$(document).ready(function($){
$("#submit_btn").click(function(){
var response = $.ajax({
type: "POST",
url: "newsite/contact_ajax/",
data: $(your_form_id).serialize()
}).responseText;
//$('#contact').hide();
//$('#contact').html('<h5>Form submitted! Thank you!</h5><h4>We will be in touch with you soon.</h4>');
//$('#contact').fadeIn('slow');
return false;
});
});
Otros consejos
Si se utiliza la función jQuery $ .post (), puede indicar el nombre del las variables de correos, a continuación, a acceder en el controlador de la forma en que se sugiere en su pregunta.
$.post("<?php echo site_url("newsite/contact_ajax/";?>",
{my_name:name,my_company:company,my_email:email,my_phone:phone,my_message:message},
function(){
//callback function
},
html
);
En su controlador:
$this->input->post('my_name');
$this->input->post('my_company');
//etc