Intereting Posts
Как обновить поле, чтобы добавить значение к существующему значению? pecl install cassandra throws: "error: Не удалось загрузить libcassandra" в OS X PHP file_exists ($ var) не работает Размещение заголовка PHP-заголовка не работает – почему? Где хранить учетные данные для входа в базу данных для приложения PHP выполнение нескольких preg_replace с различным поиском и заменой каждый раз Как получить cart_item_data с помощью WooCommerce? Передача данных между исполняемыми файлами PHP и C в Linux Пользовательский фильтр в сетке кендо, передающий нулевые значения, когда фильтрация сбоку usere serevr Могу ли я определить PHP_INT_SIZE на 4 байта в 64-битной системе, на которой запущен PHP? Проверьте, на каком сервере работает приложение? Загрузка htaccess вместо загрузки Абстрактные константы в PHP. Заставьте дочерний класс определить константу использовать переменную php в имени таблицы создания mysql Отправить переменную от PHP до Javascript

Изучение того, как использовать AJAX с CodeIgniter

Это немного смущает, что мне так трудно изучать JavaScript, но ..

Допустим, у меня действительно простой контроллер:

class front extends Controller { public function __construct() { parent::Controller(); } public function index() { //nothing! } public function test () { $someNumber = $this->input->post('someNumber'); if ($someNumber == 12) { return TRUE; } } } 

Да, это, вероятно, лучше написано, ха-ха.

То, что я хочу знать, – как я могу использовать JavaScript для отправки числа в форме (я буду беспокоиться о проверке и моделях позже), как мне написать функцию test (), чтобы он возвращал что-то, читаемое JavaScript ( Я предполагаю, что возврат TRUE, вероятно, не сработает, возможно, XML или JSON или что-то в этом роде?) И как мне получить доступ к данным с помощью JavaScript?

Я знаю, что есть такие фреймворки, как jQuery, которые помогут в этом, но сейчас я просто хотел бы понять это на самом простом уровне, и все обучающие материалы и руководства, которые я нашел до сих пор, слишком углублены для меня. Пример в jQuery или что-то тоже хорошее.

Большое спасибо 🙂

вы просто распечатали его в основном и повторно захватили бы эту информацию с помощью javascript:

 public function test() { $somenumber = $this->input->post('someNumber'); if ($somenumber == 12) { print "Number is 12"; } else { print "Number is not 12"; } } 

ваш javascript может выглядеть примерно так:

 var xhr; xhr = new XMLHTTPRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == 4) { // this is where the return information is alert('Status: '+xhr.status+' Response: '+xhr.responseText); } } xhr.open('POST', '/front/test'); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.send('someNumber=12'); 

приведенный выше код не учитывает специфические проблемы браузера, но должен работать на firefox / ie7, по крайней мере, я считаю.

вот пример jQuery из всего вышеперечисленного:

 var options = { 'someNumber' : 12 } $.post('/front/test', options, function(data) { alert(data); // should print "Number is 12" }); 

Я также нашел в CodeIgniter, что «XMLHTTPRequest» не возвращается в заголовках ответов при использовании стандартного вызова Javascript AJAX, как упоминалось выше.

 $this->input->is_ajax_request(); 

Помощник ввода никогда не возвращает true, если вы не используете jQuery для обработки запроса POST AJAX.

Я также попробовал метод в этой статье, который не работал: http://developer.practicalecommerce.com/articles/1810- The- Benefit-of-Putting-AJAX-and-CodeIgniter-PHP -Together

Это то, что я использовал в конце:

  var query_params = $('#data-form').serialize(); $.ajax({ type: 'POST', url: 'process_this.php", data: queryParams, context: document.body, success: function(){ alert('complete'); // or whatever here } 

Возможно, это связано с проблемой конфигурации, связанной с моей установкой CI, еще не успели исследовать.