Как получить значения ajax в переменные php и задать запросы sql?


В моем файле .phtml внутри тега скрипта есть код, подобный приведенному ниже

require(['jquery'], function($) {
            var Calculation = function(evt) {

                var width = jQuery('#width').val();
                var height = jQuery('#height').val();

                //Ajax
                jQuery.ajax({
                showLoader: true,
                url: '<?php echo $this->getUrl('helloworld/index/ajax'); ?>',
                data: ({
                        Width: width,
                        Height: height
                    }),
                    type: "POST",
                    dataType: 'json'
                })
                .error(function(err){
                    console.log(err);
                })
                .done(function(data) {
                    console.log(data.Width);
                    console.log(data.Height);
                });

            };
            $('#width,#height').on('change', Calculation);

        });

Вы можете видеть, что он вернет некоторую высоту и ширину

Как я могу использовать эти значения в sql-запросе

<?php
    $sql = " SELECT price_component FROM base_price WHERE width="get width" AND height="get height" ";
?>

Как я могу это сделать

Как я могу получить эти ширину и высоту в php?

Я использовал приведенный ниже код

<?php
echo $_POST['Width'];
?>

Но это приведет к ошибке, такой как указание неопределенной ширины индекса

Author: Hemal, 2017-09-15

2 answers

Как вы уже упоминали, ваш ajax работает, и вы получаете значения, которые вам просто нужно обновить, вы можете использовать jQuery для его обновления.

В функции готово обновите ее

.done(function(data) {
    jQuery('#width').val(data.Width);
    jQuery('#height').val(data.Height);
});

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

Вы можете обновить значение в любом месте, где я предполагаю, что я показал выше. Вы можете обновить его в div или в любом разделе, где вы хотите его отобразить, используя jQuery.

Надежды это помогает ему.

 0
Author: Priyank, 2017-09-16 16:39:54

Вы можете задать высоту и ширину в своем контроллере (helloworld/index/ajax) следующим образом:

$post = $this->getRequest()->getPostValue();

И sql-запрос, подобный этому:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); // Instance of object manager
$resource = $objectManager->get('Magento\Framework\App\ResourceConnection');
$connection = $resource->getConnection();
$tableName = $resource->getTableName('employee'); //gives table name with prefix

//Select Data from table
$sql = "Select * FROM " . $tableName;
$result = $connection->fetchAll($sql); // gives associated array, table fields as key in array.
 0
Author: Yogesh Agarwal, 2017-09-15 09:09:04