0 Пользователей и 1 Гость просматривают эту тему.
  • 32 Ответов
  • 507 Просмотров
*

ChervonStudio

  • Осваиваюсь на форуме
  • 49
  • 0
Привет! Делаю модуль. Пытаюсь передать данные из формы в default.php при помощи com_ajax. Итак что я делаю

В файле helper.php добавил класс
Код: php
public static function getAjax() {
// Get module parameters
jimport('joomla.application.module.helper');
$input  = JFactory::getApplication()->input;
$module = JModuleHelper::getModule('auction');
$params = new JRegistry();
$params->loadString($module->params);
}

в mod_name.php добавил форму и JS
Код: php
<form method="post" action="this.form.submit();" name="form1" id="lol">
    <input type="text" name="price" onclick="function1();">value1</input>
</form>

<script>
 jQuery.noConflict();
   function function1() {
    var data = jQuery("lol").serialize();
    jQuery.ajax({
        url: "index.php?option=com_ajax&module=auction&method=post&format=json",
        type: "POST",
        data: data,
        success: function(data){
            alert(data);
        }
    });
};
</script>

Вопрос. Как мне эти данные получить в default.php ? И все ли я сделал правильно?
*

ProtectYourSite

  • Живу я здесь
  • 947
  • 49
  • Безопасность вебсайтов
Re: com_ajax передача данных из формы POST
« Ответ #1 : 11.06.2017, 17:55:09 »
Для каких целей получать данные?  Default.php это файл отображения, если с данными необходимо что-то делать, то лучше в helper обрабатывать.
*

ChervonStudio

  • Осваиваюсь на форуме
  • 49
  • 0
Re: com_ajax передача данных из формы POST
« Ответ #2 : 11.06.2017, 17:56:59 »
Для каких целей получать данные?  Default.php это файл отображения, если с данными необходимо что-то делать, то лучше в helper обрабатывать.

В default.php я получить переменную и записать в базу. Но у меня ругается консоль на url запроса...
*

ProtectYourSite

  • Живу я здесь
  • 947
  • 49
  • Безопасность вебсайтов
Re: com_ajax передача данных из формы POST
« Ответ #3 : 11.06.2017, 18:19:07 »
В default.php я получить переменную и записать в базу. Но у меня ругается консоль на url запроса...
Google Translate? Скрин консоли?
*

ChervonStudio

  • Осваиваюсь на форуме
  • 49
  • 0
Re: com_ajax передача данных из формы POST
« Ответ #4 : 11.06.2017, 19:04:55 »
Google Translate? Скрин консоли?

Сейчас код в mod_name.php вот такой. При нажатии на кнопку выдает алерт с [object Object]
Код: php
<form method="POST" id="formx" action="javascript:void(null);" onsubmit="function1()">
<legend>Test From</legend>
<label for="name">Name:</label><input id="name" name="name" value="" type="text">
<label for="email">Email:</label><input id="email" name="email" value="" type="text">
<input value="Send" type="submit">
</form>
 
<script>
 jQuery.noConflict();
   function function1() {
    var data = jQuery("#lol").serialize();
    jQuery.ajax({
        url: "index.php",
        data:
        {
option: 'com_ajax',
module: 'auction',
method:'get',
format: 'json',
    },
        success: function(data){
            alert(data);
        }
    });
};
</script>
*

Septdir

  • Практически профи
  • 2272
  • 112
  • JoomlaZen
Re: com_ajax передача данных из формы POST
« Ответ #5 : 11.06.2017, 21:00:37 »
В default.php я получить переменную и записать в базу. Но у меня ругается консоль на url запроса...
Это в хелпере делайте потом уже возвращаете результат.
Вот в статье все хорошо расписанно. Разве что про название класса  хелпера не написалаи
https://cmscafe.ru/docs/joomla/developer/module-joomla-2-5-joomla-3/616-ajax-funktsionalnost-s-pomoshchyu-ajax-interfejsa-com-ajax
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen
*

passer

  • Живу я здесь
  • 875
  • 70
Re: com_ajax передача данных из формы POST
« Ответ #6 : 11.06.2017, 21:08:18 »
var data = jQuery("#lol").serialize();
Догадайтесь с трех раз, что на сервер уходит.
Пардон, не увидел что ниже переопределяется.
*

ChervonStudio

  • Осваиваюсь на форуме
  • 49
  • 0
Re: com_ajax передача данных из формы POST
« Ответ #7 : 11.06.2017, 21:10:11 »
var data = jQuery("#lol").serialize();
Догадайтесь с трех раз, что на сервер уходит.

данные из формы #lol
*

Septdir

  • Практически профи
  • 2272
  • 112
  • JoomlaZen
Re: com_ajax передача данных из формы POST
« Ответ #8 : 11.06.2017, 21:15:13 »
SerializeArray
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen
*

passer

  • Живу я здесь
  • 875
  • 70
Re: com_ajax передача данных из формы POST
« Ответ #9 : 11.06.2017, 21:26:29 »
данные из формы #lol
Уверены?
data:
        {
option: 'com_ajax',
module: 'auction',
method:'get',
format: 'json',
    }
А где форма #lol?
*

ChervonStudio

  • Осваиваюсь на форуме
  • 49
  • 0
Re: com_ajax передача данных из формы POST
« Ответ #10 : 11.06.2017, 21:30:45 »
Уверены?
data:
        {
option: 'com_ajax',
module: 'auction',
method:'get',
format: 'json',
    }
А где форма #lol?

Вот поправил. Выводится {"success":true,"message":null,"messages":null,"data":null}
data null, хотя я в нее передал данные
Код: php
<div id="status">Вывод</div>

<form method="POST" id="lol" action="javascript:void(null);" onsubmit="function1()">
    <input name="price" type="text" value="" class="text_area">
       </br>
       <input type="submit" name="submit" value="Поставить" class="button_auc">
</form>
<script>
 jQuery.noConflict();
   function function1() {
    var form = jQuery("#lol").serializeArray();
    jQuery.ajax({
        type: 'POST',
        url: "index.php",
        dataType:'json',
        data:
        {
option: 'com_ajax',
module: 'auction',
format: 'json',
data: form
    },
       
        success: function(data, status){
        document.getElementById('status').innerHTML=JSON.stringify(data);
        },
        error: function(data,status){
           
        }
    });
};
</script>
*

passer

  • Живу я здесь
  • 875
  • 70
Re: com_ajax передача данных из формы POST
« Ответ #11 : 11.06.2017, 21:35:35 »
А в getAjax допишите
return ['result'=>'Уряяяяя'];
*

ChervonStudio

  • Осваиваюсь на форуме
  • 49
  • 0
Re: com_ajax передача данных из формы POST
« Ответ #12 : 11.06.2017, 21:43:24 »
А в getAjax допишите
return ['result'=>'Уряяяяя'];

Сори за тупость) Но у меня так и выводится в data 'result'=>'Уряяяяя' . А не данные формы))
*

passer

  • Живу я здесь
  • 875
  • 70
Re: com_ajax передача данных из формы POST
« Ответ #13 : 11.06.2017, 21:45:05 »
return ['form'=>$_POST];
*

ChervonStudio

  • Осваиваюсь на форуме
  • 49
  • 0
Re: com_ajax передача данных из формы POST
« Ответ #14 : 11.06.2017, 21:56:31 »
return ['form'=>$_POST];

Спасибо! Я получил массив в массиве {"forma":{"option":"com_ajax","module":"auction","format":"json","forma":[{"name":"price","value":"я это ввел"}]}}}
Пробую достать value. return ['forma'=>$_POST['value']], но выходит нул. Буду очень благодарен
*

passer

  • Живу я здесь
  • 875
  • 70
Re: com_ajax передача данных из формы POST
« Ответ #15 : 11.06.2017, 22:14:04 »
Ладно. Спать пора. В общем.
Не стоит использовать $_POST напрямую без проверки входящих данных. Можно что нибудь нехорошее получить.
В getAjax обьект $input вы уже получили.
Теперь получаете данные формы.
Код: php
$price = $input->getArray([
'price'=>'float'
]);
return ['price'=>$price['price']+140.54];
В js-е
Код: javascript
success: function(data, status){ 
console.log(data);
        document.getElementById('status').innerHTML=data.price;
        },
Код пишу прямо в форме быстрого ответа возможны ошибки.
В поле ввода должна быть цифра.
Отладка.
Чтобы увидеть что получил в getAjax
Пишешь в нем
Код: php
var_dump($price); die();
В js получаешь
Код: javascript
success: function(data, status){ 
console.log(data);        
        },
И в консоли смотришь что пришло.
« Последнее редактирование: 11.06.2017, 22:19:03 от passer »
*

Septdir

  • Практически профи
  • 2272
  • 112
  • JoomlaZen
Re: com_ajax передача данных из формы POST
« Ответ #16 : 11.06.2017, 22:24:46 »
Сделаю две приписки.
1. есть $app->input->post->getAray
2. В браузере есть вкладка сеть. Там можно посмотреть что пришло и что ушло. А так же ошибки. можно даже не делать conlose.log (ибо если там ошибка php то придет не json) просто сдеаать var_dump или print_r
« Последнее редактирование: 11.06.2017, 23:54:25 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen
*

ChervonStudio

  • Осваиваюсь на форуме
  • 49
  • 0
Re: com_ajax передача данных из формы POST
« Ответ #17 : 11.06.2017, 22:28:34 »
Ладно. Спать пора. В общем.
Не стоит использовать $_POST напрямую без проверки входящих данных. Можно что нибудь нехорошее получить.
В getAjax обьект $input вы уже получили.
Теперь получаете данные формы.
Код: php
$price = $input->getArray([
'price'=>'float'
]);
return ['price'=>$price['price']+140.54];
В js-е
Код: javascript
success: function(data, status){ 
console.log(data);
        document.getElementById('status').innerHTML=data.price;
        },
Код пишу прямо в форме быстрого ответа возможны ошибки.
В поле ввода должна быть цифра.
Отладка.
Чтобы увидеть что получил в getAjax
Пишешь в нем
Код: php
var_dump($price); die();
В js получаешь
Код: javascript
success: function(data, status){ 
console.log(data);       
        },
И в консоли смотришь что пришло.

Все сделал, выдает просто undefined. И почему float? Это что вообще?
*

ChervonStudio

  • Осваиваюсь на форуме
  • 49
  • 0
Re: com_ajax передача данных из формы POST
« Ответ #18 : 11.06.2017, 22:33:46 »
Ладно. Спать пора. В общем.
Не стоит использовать $_POST напрямую без проверки входящих данных. Можно что нибудь нехорошее получить.
В getAjax обьект $input вы уже получили.
Теперь получаете данные формы.
Код: php
$price = $input->getArray([
'price'=>'float'
]);
return ['price'=>$price['price']+140.54];
В js-е
Код: javascript
success: function(data, status){ 
console.log(data);
        document.getElementById('status').innerHTML=data.price;
        },
Код пишу прямо в форме быстрого ответа возможны ошибки.
В поле ввода должна быть цифра.
Отладка.
Чтобы увидеть что получил в getAjax
Пишешь в нем
Код: php
var_dump($price); die();
В js получаешь
Код: javascript
success: function(data, status){ 
console.log(data);       
        },
И в консоли смотришь что пришло.

В консоли http://imgur.com/xCL7zfT   почему то у value значение null
*

passer

  • Живу я здесь
  • 875
  • 70
Re: com_ajax передача данных из формы POST
« Ответ #19 : 11.06.2017, 22:38:22 »
Ну видимо как сказал Septdir надо
Код: php
price = $input->post->getArray([
var_dump($price); die();
Что возвращает?
Основы отладки вам дали. Отладку придется делать самостоятельно.
Кто ж за вас ее делать будет. Если данные не приходят, значит где то теряются. Ошибка. Ищите где.
Как искать вам рассказали.
*

Septdir

  • Практически профи
  • 2272
  • 112
  • JoomlaZen
Re: com_ajax передача данных из формы POST
« Ответ #20 : 11.06.2017, 22:41:49 »
Ошибки php на максимум. и во вкладку сеть, смотрите что ушло. Либо давайте сайт если время будет кто нибудь глянет. Еще не плохо бы законсолить данные до отправки.
Первый AJAX он трудный самый, потом как по маслу пойдет.
кроме того сделайте так
print_r($input->post) это весь пость
Ну и конечно же дока по jimput https://docs.joomla.org/Retrieving_request_data_using_JInput и еще, получение параметров в пример и вас в коде не верное. так вы получиле паметр по типу или позиции модуля, а вам надо конкретного модуля по id.
« Последнее редактирование: 11.06.2017, 22:49:31 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen
*

ChervonStudio

  • Осваиваюсь на форуме
  • 49
  • 0
Re: com_ajax передача данных из формы POST
« Ответ #21 : 11.06.2017, 23:39:40 »
Ошибки php на максимум. и во вкладку сеть, смотрите что ушло. Либо давайте сайт если время будет кто нибудь глянет. Еще не плохо бы законсолить данные до отправки.
Первый AJAX он трудный самый, потом как по маслу пойдет.
кроме того сделайте так
print_r($input->post) это весь пость
Ну и конечно же дока по jimput https://docs.joomla.org/Retrieving_request_data_using_JInput и еще, получение параметров в пример и вас в коде не верное. так вы получиле паметр по типу или позиции модуля, а вам надо конкретного модуля по id.

и я не могу делать дамп или принт в getAjax. Если вставляю что-то из этого, скрипт просто не запускается. Жму на кнопку а результата  ноль
*

Septdir

  • Практически профи
  • 2272
  • 112
  • JoomlaZen
Re: com_ajax передача данных из формы POST
« Ответ #22 : 11.06.2017, 23:55:49 »
и я не могу делать дамп или принт в getAjax. Если вставляю что-то из этого, скрипт просто не запускается. Жму на кнопку а результата  ноль

Такого не бывает. Что в запросе.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen
*

dmitry_stas

  • Профи
  • 10000
  • 948
Re: com_ajax передача данных из формы POST
« Ответ #23 : 12.06.2017, 00:46:37 »
судя по тому json который вы показываете "я это ввел" лежит в
Код
$_POST['forma'][0]['value']
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

passer

  • Живу я здесь
  • 875
  • 70
Re: com_ajax передача данных из формы POST
« Ответ #24 : 12.06.2017, 09:45:34 »
и я не могу делать дамп или принт в getAjax. Если вставляю что-то из этого, скрипт просто не запускается. Жму на кнопку а результата  ноль
Он и не должен запускаться. die() обрывает выполнение скрипта. Результат в консоли js нужно смотреть.
*

ChervonStudio

  • Осваиваюсь на форуме
  • 49
  • 0
Re: com_ajax передача данных из формы POST
« Ответ #25 : 12.06.2017, 10:42:33 »
Он и не должен запускаться. die() обрывает выполнение скрипта. Результат в консоли js нужно смотреть.
Если я вставляю echo, скрипт тоже не работает.
вот код
Код: php
<?php

// No direct access
defined( '_JEXEC' ) or die;

/**
 * Class Module Helper
 * @author Alex Chervon
 */
class modAuctionHelper
{
   

/**
* getData method
* @param $params
* @return array
*/
static function getData( $params )
{
$db = JFactory::getDbo();
return array();
}
   
    public static function getAjax()
{
jimport('joomla.application.module.helper');
$input  = JFactory::getApplication()->input;
$module = JModuleHelper::getModule('auction');
        $price = $_POST['forma'][0]['value'];
      echo $price;     
       return true;
       
       
     

}
}
   




?>

*

dmitry_stas

  • Профи
  • 10000
  • 948
Re: com_ajax передача данных из формы POST
« Ответ #26 : 12.06.2017, 13:58:31 »
он работает, просто ответ получается не json, и ваш javascript вываливается с ошибкой. ловите исключения в error, либо просто смотрите в консоли ответ. а лучше просто делайте return, а не echo
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ProtectYourSite

  • Живу я здесь
  • 947
  • 49
  • Безопасность вебсайтов
Re: com_ajax передача данных из формы POST
« Ответ #27 : 12.06.2017, 18:09:24 »
Код
$response=JFactory::getApplication()->input->getString('form');
И обрабатываешь как душе угодно данные формы
*

onelawyer

  • Захожу иногда
  • 20
  • 0
Re: com_ajax передача данных из формы POST
« Ответ #28 : 28.08.2017, 10:20:52 »
Добрый день, подскажите, кто знает, почему при пагинации данные значениий вводимые в input не сохраняются для этого кода:
Код

        <?php

        if (in_array($ch_id->id,$char_rang)){
         $char_from_min[$ch_id->id] = min($characteristic_fieldvalues[$ch_id->id]);
         $char_from_max[$ch_id->id] = max($characteristic_fieldvalues[$ch_id->id]);
         ?>
         <div id="slider<?php print $ch_id->id; ?>" ></div>
         <div class="rangshow">
          <span class="box_char_from"> <?php print JText::_('FROM')?>&nbsp;
            <input type = "text"  class = "inputbox" name = "char_from[<?php print $ch_id->id; ?>]" id="char_from<?php print $ch_id->id; ?>" size="3" value="<?php ($char_from[$ch_id->id] > 0)? print $char_from[$ch_id->id] : print $char_from_min[$ch_id->id]; ?>" />
          </span>
          <span class="box_char_to"> <?php print JText::_('TO')?>&nbsp;
            <input type = "text" class = "inputbox" name = "char_to[<?php print $ch_id->id; ?>]" id="char_to<?php print $ch_id->id; ?>" size="3" value="<?php ($char_to[$ch_id->id] > 0)? print $char_to[$ch_id->id] : print $char_from_max[$ch_id->id]; ?>" />
          </span>
        </div>


*

dmitry_stas

  • Профи
  • 10000
  • 948
Re: com_ajax передача данных из формы POST
« Ответ #29 : 28.08.2017, 10:29:25 »
поспамить решили? не стоит
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Создание модуля для своего компонента подгрузкой данных по AJAX

Автор john.deff

Ответов: 35
Просмотров: 750
Последний ответ 18.08.2017, 14:17:17
от Aleks.Denezh
Как сохранить слэши / при отправке формы?

Автор borro

Ответов: 12
Просмотров: 225
Последний ответ 07.07.2017, 21:37:00
от Septdir
Почему строки не удалились из базы данных?

Автор borro

Ответов: 6
Просмотров: 147
Последний ответ 28.06.2017, 10:26:48
от borro
нету возможности авторизоваться без формы

Автор pavel2950

Ответов: 1
Просмотров: 171
Последний ответ 06.01.2017, 12:36:25
от SmokerMan
Ошибка про вызове формы в контрллере компонента

Автор GuDeVic

Ответов: 21
Просмотров: 351
Последний ответ 16.12.2016, 01:16:29
от robert