Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

onkeyup посылать цифры в контроллер и получить результат из функции


Recommended Posts

Всем добра,

 

OpencartI 3.0.2.0

 

Есть файл, это класс с функциями, которая вызвана в контроллере . Функция возвращает массив и из даты массива строится таблица. Мне нужно на `onkeyup` определенного input-а посылать значение в контроллер и возвращаться оттуда значение и это значение должно внести изменение в определенный input. Как можно ajaxom или каким то другим методом это сделать?


Мой контроллер:

require_once('catalog/controller/product/onlinecredit.php');
$credonl = new OnlineCredit();

foreach ($data['credittules'] as $rndb) {
    //echo $rndb['model'];
    $array = array(
        'Rule' => array(
            'rule_id' => $rndb['credit_rule_id'],
            'rule_name' => '' . $rndb['rule_name'] . '',
            'interest' => $rndb['interest'],
            'comission' => $rndb['comission'],
            'best_offer_downpayment' => $rndb['best_offer_downpayment'],
            'best_offer_duration' => $rndb['best_offer_duration']
        ),
        'Product' => array(
            'product_id' => $rndb['product_id'],
            'category_id' => $rndb['best_offer_duration'],
            'manufacturer_id' => $rndb['manufacturer_id'],
            'product_price' => $rndb['price']
        ),
        'Credit' => array(
            'downpayment' => $rndb['best_offer_downpayment'],
            'duration' => $rndb['best_offer_duration']
        )
    );
}

$data['credits']=$credonl->BuildCreditTable($array);

 

Мой: сторона VIEW
 

<div class="table-responsive" style="text-align: center">
   <div class="crhead"><h1 class="h1size">Hissə-hissə ödə!</h1></div>

   <table id="kreditable" width="100%">
      <thead>
      <tr>
         <th>{{ text_choise }}</th>
         <th>{{ text_vznos }}</th>
         <th>{{ text_month }}</th>
         <th>{{ text_monthly }}</th>
         <th>{{ text_total }}</th>
      </tr>
      </thead>
      <tbody>
      {% for credit_item in credits.Options %}
         <tr class="tr_row">
              {% if credit_id %}
               <td>
                  <label class="containerk">
                     <input type="radio" name="credit_id" {% if credit_item.duration == credit_id %} checked {% endif %} value="{{ credit_item.duration }}">
                     <span class="checkmarkk"></span>
                  </label>
               </td>
               {% else %}
               <td>
                  <label class="containerk">
                     <input type="radio" name="credit_id" value="{{ credit_item.duration }}">
                     <span class="checkmarkk"></span>
                  </label>
               </td>
              {% endif %}
            <td> <input type="text" class="inptsize" id="publicname-change" value="{{ credit_item.downpayment }}" onkeyup="setprice()"></td>
            <td>{{ credit_item.duration }}</td>
            <td>{{ credit_item.monthly }}</td>
            <td>{{ credit_item.total }}</td>
         </tr>
      {% endfor %}
      </tbody>
   </table>
   <div class="cb"></div>
   <a href="{{ action_credit }}&product_id={{product_id}}" class="button btn btn-cart kredit-type" onclick="kredit_click('{{ product_id }}'); return false;"/>
{{ text_nuraceiet_et }}
   </a>
</div>

 

Змінено користувачем Orkh3ll0
Надіслати
Поділитися на інших сайтах


Дописать в контроллер на прием ajax запроса и отдачи нужных данных.

На фронте http://api.jquery.com/jquery.ajax/

https://api.jquery.com/keyup/

Но я бы не стал делать каждый запрос на каждое нажатие ajax, наверно лучше изначально предоставить какие нибудь данные в момент загрузки страницы и в массиве js их обрабатывать в зависимости от введенных данных.

Надіслати
Поділитися на інших сайтах


Вот посылаю ajaxom на keyup
 

function setprice() {
        var downpayment = $('#publicname-change').val();

        $.ajax({
            url:'catalog/controller/product/product.php',
            type: 'POST',
            crossDomain:true,
            cache:false,
            data: {
                'action': 'get_data','price_value': downpayment
            },
            success: function(data) {

            },
            error: function(e) {
                console.log(e);

            }
        });
    }

В конроллере принимаю.

if (isset($_POST["action"]) && $_POST["action"] = "get_data" && isset($_POST["price_value"]) && $_POST["price_value"] != "") {
    echo 'число:'.$_POST["price_value"];
} else
{
	стандартная таблица без изменений инпута
}

Как не обновляя страницу теперь получить новые значения функции и заменить прошлые. Ведь значения выводится изначально через foreach

Надіслати
Поділитися на інших сайтах


36 минут назад, MikeTheRaven сказал:

Пихаете все данные в массив, затем кодируете в json и выводите результат:


$data['result'] = 'Some result';

echo json_encode($data);

 

В стороне твига?

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


foreach ($data['credittules'] as $rndb) {
    //echo $rndb['model'];
    $array = array(
        'Rule' => array(
            'rule_id' => $rndb['credit_rule_id'],
            'rule_name' => '' . $rndb['rule_name'] . '',
            'interest' => $rndb['interest'],
            'comission' => $rndb['comission'],
            'best_offer_downpayment' => $rndb['best_offer_downpayment'],
            'best_offer_duration' => $rndb['best_offer_duration']
        ),
        'Product' => array(
            'product_id' => $rndb['product_id'],
            'category_id' => $rndb['best_offer_duration'],
            'manufacturer_id' => $rndb['manufacturer_id'],
            'product_price' => $rndb['price']
        ),
        'Credit' => array(
            'downpayment' => $rndb['best_offer_downpayment'],
            'duration' => $rndb['best_offer_duration']
        )
    );

}

впихнуть и заменить уже внутри?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.