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

ChervonStudio

  • Осваиваюсь на форуме
  • 45
  • 0 / 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

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

ChervonStudio

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

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

ProtectYourSite

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

ChervonStudio

  • Осваиваюсь на форуме
  • 45
  • 0 / 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

  • Живу я здесь
  • 3370
  • 168 / 4
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
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

passer

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

ChervonStudio

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

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

Septdir

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

passer

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

ChervonStudio

  • Осваиваюсь на форуме
  • 45
  • 0 / 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

  • Завсегдатай
  • 1013
  • 75 / 3
Re: com_ajax передача данных из формы POST
« Ответ #11 : 11.06.2017, 21:35:35 »
А в getAjax допишите
return ['result'=>'Уряяяяя'];
*

ChervonStudio

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

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

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Re: com_ajax передача данных из формы POST
« Ответ #13 : 11.06.2017, 21:45:05 »
return ['form'=>$_POST];
*

ChervonStudio

  • Осваиваюсь на форуме
  • 45
  • 0 / 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

  • Завсегдатай
  • 1013
  • 75 / 3
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

  • Живу я здесь
  • 3370
  • 168 / 4
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 »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

ChervonStudio

  • Осваиваюсь на форуме
  • 45
  • 0 / 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

  • Осваиваюсь на форуме
  • 45
  • 0 / 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

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

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
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 »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

ChervonStudio

  • Осваиваюсь на форуме
  • 45
  • 0 / 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

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

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

dmitry_stas

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

passer

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

ChervonStudio

  • Осваиваюсь на форуме
  • 45
  • 0 / 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

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

ProtectYourSite

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

Прописать условие для сохранения данных в БД

Автор semen1707

Ответов: 0
Просмотров: 314
Последний ответ 14.04.2021, 00:59:44
от semen1707
Вызов формы компонента в pop-up, при клике по ссылке из любого места

Автор SkyAn

Ответов: 1
Просмотров: 394
Последний ответ 01.03.2021, 04:08:48
от gartes
Модель для представления, которое показывает списки данных разных типов

Автор borro

Ответов: 27
Просмотров: 898
Последний ответ 06.05.2020, 11:57:12
от Septdir
Связать две таблицы с БД для дальнейшего вывода данных с них

Автор golinejj

Ответов: 16
Просмотров: 760
Последний ответ 06.02.2020, 15:40:58
от golinejj
Pagination компонента и данные из формы модуля

Автор platonische

Ответов: 4
Просмотров: 625
Последний ответ 29.01.2020, 11:32:43
от mardok