نموذج الاتصال Ajax في Codeigniter
-
25-09-2019 - |
سؤال
بعض الأسئلة:
أنا أستخدم CI و JQuery Ajax.
في الكود الخاص بي أدناه ، أتجمع dataString
, ، والتي يتم إلحاقها بشكل افتراضي بعنوان URL كسلسلة استعلام.
لقد غيرت "نوع" Ajax للنشر ، لذا فإن سؤالي هو - كيف يمكنني الوصول dataString
في تطبيق CI الخاص بي؟
يبدو أنه لا يزال يتعين علي استخدام
$name=$this->input->post('name')
الذي يجعل الإعداد بالنسبة لي dataString
متكرر؟
--
لقد حاولت البحث ولكن لا يمكنني العثور على أي شيء ملموس.
هل سيكون من الممكن الاستفادة من مكتبة التحقق من صحة رابطة الدول المستقلة وأجاكس؟
if($this->form_validation->run() == FALSE)
{
// what can i return so that my CI app shows errors?
}
عادةً ما تقوم بإعادة تحميل نموذج الاتصال أو إعادة توجيه المستخدم. في عالم مثالي ، أود عرض رسائل الخطأ للمستخدم.
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;
});
});
آمل أن أكون واضحًا بما فيه الكفاية - إذا كان لدى أي شخص مثال لائق لنموذج الاتصال CI سيكون رائعًا. هناك أشياء مختلطة على الإنترنت ولكن لا شيء يضرب جميع الصناديق.
شكرًا
المحلول
كما كتبت في التعليقات ، لا تحتاج إلى ضبط ملف dataString
بما أن jQuery يمكن أن تفعل ذلك من أجلك:
$(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;
});
});
نصائح أخرى
إذا كنت تستخدم jQuery $ .post () الوظيفة ، يمكنك تسمية متغيرات المنشور بشكل صريح ، ثم الوصول إليها في وحدة التحكم الخاصة بك بالطريقة التي اقترحتها في سؤالك.
$.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
);
في وحدة التحكم الخاصة بك:
$this->input->post('my_name');
$this->input->post('my_company');
//etc