Форум → Программирование → PHP для идиотов → Вопрос по форме
Вопрос по форме
Страницы: ← Следующая страница →
-
-
-
25 июля 2009 г. 17:18, спустя 3 часа 51 минуту 8 секунд
Все работает. Но если попытаться прикрутить JsHttpRequest к фреймворку CodeIgniter, то нет.
Насколько я понял, то back-end нужно делать через функцию контроллера:
function ajax()
{
$this->load->library('JsHttpRequest');
$JsHttpRequest=new $this->JsHttpRequest('utf-8');
switch($this->input->post('order_type'))
{
case 'personal_order':
$html="<h1>personal order</h1>";
break;
case 'public_order':
$html="<h1>public_order</h1>";
break;
}
echo $html;
}
front-end сделан так:
<script>
function doload(value){
var req=new JsHttpRequest();
req.onreadystatechange=function()
{
if(req.readyState==4)
document.getElementById("result").innerHTML=req.responseText;}
req.open("POST","<? echo site_url('main/ajax'); ?>",true);
req.send({order_type:value});
}
</script>
<h5>Тип заказа</h5>
<select name="order_type" onchange="doload(this.value);">
<option value="not_selected">Выберите тип заказа</option>
<option value="personal_order">Персональный заказ</option>
<option value="public_order">Публичный заказ</option>
</select>
<div id="result"></div>
Тоесть вот эта строка ссылается на back-end:req.open("POST","<? echo site_url('main/ajax'); ?>",true);
При переключении менюшки ничего не происходит. Хотя если ссылаться не на функцию контролерра, а на конкретный файл, то все работает. Помогите разобраться -
25 июля 2009 г. 17:21, спустя 2 минуты 28 секунд
в первом кучке кода ты получаешь переменную из $this->input->post('order_type') а должен получать из $JsHttpRequest если я правильно понимаю -
25 июля 2009 г. 17:24, спустя 3 минуты 14 секунд
нет, с постом все правильно. Вот рабочий варинт через отдельный файл. Тоесть когда:req.open("POST","<? echo base_url . '/ajax/ajax_test.php'); ?>",true);
ajax_test.php:
<?
require("JsHttpRequest.php");
$JsHttpRequest=new JsHttpRequest("utf-8");
switch($_POST["order_type"])
{
case 'personal_order':
$html="<h1>personal order</h1>";
break;
case 'public_order':
$html="<h1>public_order</h1>";
break;
}
echo $html;
?>
тут тоже через пост и все работает -
25 июля 2009 г. 17:24, спустя 26 секунд
я так же думаю
в первом кучке кода ты получаешь переменную из $this->input->post('order_type') а должен получать из $JsHttpRequest если я правильно понимаюСапожник без сапог -
25 июля 2009 г. 17:26, спустя 2 минуты 10 секунд
там еще указывается каким методом передавать данные, вот:req.open("POST","<? echo site_url('main/ajax'); ?>",true);
тоесть через пост -
25 июля 2009 г. 18:19, спустя 52 минуты 23 секунды
ну через пост то понятно
у тебя JsHttpRequest должен обработать этот пост иначе какой смысл от его подключения ?!
а то что ты получаешь результат в ajax_test.php это просто совпадение -
25 июля 2009 г. 18:33, спустя 14 минут 30 секунд
смысл подключения мне не ясен. Я делал как написано в статье, вот:
http://pyha.ru/articles/php/ajax-select/
там тоже самое, но через _request:
<?
require("JsHttpRequest.php"); //Подключаем библиотеку
$JsHttpRequest=new JsHttpRequest("windows-1251"); //Создаем экземпляр класса, указываю рабочую кодировку.
//Далее все просто. В зависимости от выбранного параметра в первом select`e, заполняем переменную $html необходимым кодом.
switch($_REQUEST["country"]):
// …. обработка -
25 июля 2009 г. 18:37, спустя 3 минуты 31 секунду
smackthat, окСпустя 29 сек.перед свичем
switch($this->input->post('order_type'))
сделай дамп поста глянь что там -
25 июля 2009 г. 18:56, спустя 19 минут 20 секунд
блин, а как это сделать?
я пробую так:
$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = $this->input->post('order_type');
fwrite($fh, $stringData);
fclose($fh);
но файл не создается… -
25 июля 2009 г. 19:02, спустя 6 минут 12 секунд
smackthat, если я правильно понял, то Мавр хочет от тебя var_dump($_POST); -
25 июля 2009 г. 19:08, спустя 5 минут 26 секунд
я пробывал через дебаггер, типа в watch добавил переменную $_POST, но как только я выбираю что-то из списка, тоесть должна начать исполняться ajax часть, то получаю ошибку такую:
Спустя 57 сек.я поэтому и пробывал _POST вывести через файл.Спустя 53 сек.короче, я так понял, что до функции _ajax оно даже не доходит, где то раньше ошибка -
25 июля 2009 г. 19:13, спустя 5 минут 30 секунд
smackthat, ну правильно шибка 404Спустя 51 сек.видимо с контролом чтото
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!