Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6894-й день

Новорічний Фріліч на трекері активовано!
Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua

 Вопросы по PHP

mzk
Mar 14 2018, 12:51
  
Пост #41



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Да, совершенно верно

Получается, айдишки полей инпута в каждой строке должны быть одинаковыми ?
Выделил красными прямоугольниками:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


И еще вопрос, как я узнаю айдишку строки ?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SyntaxError
Mar 14 2018, 12:57
  
Пост #42



Репутация:   440  
Ветеран
*****

Группа: Пользователи
Сообщений: 7 467
С нами с: 7-December 12


(mzk @ Mar 14 2018, 12:51) Перейти к цитате

Да, совершенно верно

Получается, айдишки полей инпута в каждой строке должны быть одинаковыми ?
Выделил красными прямоугольниками:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


И еще вопрос, как я узнаю айдишку строки ?

Для инпутов вместо id используй name. id не может повторятся больше одного раза на странице. Также, name берется как ключ при вызове метода serialize или serializeArray.

Когда ты рендеришь таблицу ты можешь указать id для каждой строки:

<table>
    <tr id="1"> ... </tr>
    <tr id="2"> ... </tr>
    <tr id="3"> ... </tr>

        ...

    <tr id="100"> ... </tr>
</table>


Сообщение отредактировал SyntaxError - Mar 14 2018, 13:00
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Mar 14 2018, 13:15
  
Пост #43



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


С id строки понял, добавил, рисуется.
Но как мне использовать эту id на стороне update_mysql.php - не понятно. Или тут оно и не нужно?
Как ключи поиска в бд для апдейта я использую только это:
$lmorder = $_POST['lmorder'];
$lmstore = $_POST['lmstore'];

и делаю апдейт из этого инпута:
$sel = $_POST['sel'];

И еще, если id не может повторятся, то name может ?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SyntaxError
Mar 14 2018, 14:16
  
Пост #44



Репутация:   440  
Ветеран
*****

Группа: Пользователи
Сообщений: 7 467
С нами с: 7-December 12


(mzk @ Mar 14 2018, 13:15) Перейти к цитате

С id строки понял, добавил, рисуется.
Но как мне использовать эту id на стороне update_mysql.php - не понятно. Или тут оно и не нужно?
Как ключи поиска в бд для апдейта я использую только это:
$lmorder = $_POST['lmorder'];
$lmstore = $_POST['lmstore'];

и делаю апдейт из этого инпута:
$sel = $_POST['sel'];

И еще, если id не может повторятся, то name может ?

Тогда id для строки тебе не нужен, т.к. у тебя уже все есть. smile.gif

На бэкенде ты получаешь так:

$lmorder = $_POST['lmorder'];
$lmstore = $_POST['lmstore'];
$sel = $_POST['sel'];


И дальше делаешь апдейт базы, где ключи у тебя lmorder и lmstore.

Каждый раз как ты будешь кликать на кнопку конкретной строки таблицы ты будешь передавать в update_mysql.php новые значения.

Да, name может повторяться.

Сообщение отредактировал SyntaxError - Mar 14 2018, 14:19
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Mar 14 2018, 14:48
  
Пост #45



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


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

В цикле while я убрал все айдишки и поставил атрибут name
После того, как таблица отрисовывается, я нажимаю на кнопку "оновити статус" но ничего не происходит. Не отрабатывает скрипт:

$('.table-class').on('click', '.button-class', function( event ) {

  var $button = $(event.target);
  var $row = $button.closest('.table-row-class');
  var $elements = $row.find('input');

  var data = $elements.serialize();

  $.ajax({
    type : 'POST',
    data : data,
    url : "update_mysql.php",
    success : function(result){
      alert(result);
      $elements.val('');
    }

  });

});

Есть подозрение на эти строки:
var data = $elements.serialize();

$.ajax({
type : 'POST',
data : data,

Прошу прощения, но совсем не силен в js
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SyntaxError
Mar 14 2018, 15:33
  
Пост #46



Репутация:   440  
Ветеран
*****

Группа: Пользователи
Сообщений: 7 467
С нами с: 7-December 12


Классы в JS скрипте поменяй на свои.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Mar 14 2018, 15:46
  
Пост #47



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


(SyntaxError @ Mar 14 2018, 15:33) Перейти к цитате

Классы в JS скрипте поменяй на свои.

Помоги, пожалуйста, я подставил как у меня здесь:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


Вышло вот что, но все равно не работает:

$('.blueTable').on('click', '.button', function( event ) {

  var $button = $(event.target);
  var $row = $button.closest('.table-row-class');
  var $elements = $row.find('input');

  var data = $elements.serialize();

  $.ajax({
    type : 'POST',
    data : data,
    url : "update_mysql.php",
    success : function(result){
      alert(result);
      $elements.val('');
    }

  });

});
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SyntaxError
Mar 14 2018, 16:00
  
Пост #48



Репутация:   440  
Ветеран
*****

Группа: Пользователи
Сообщений: 7 467
С нами с: 7-December 12


Вместо .table-row-class поставь класс с <TR>, или просто укажи 'tr'.

А вообще можешь использовать console.log() для дебага JS в браузере и смотреть что у тебе приходит в переменную.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Mar 14 2018, 17:02
  
Пост #49



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Испавил, для теста поставил console.log статический, но уведомление не прилетает.. Видать не доходит дело до этого. Где я напартачил?

$('.blueTable').on('click', '.button', function( event ) {

  var $button = $(event.target);
  var $row = $button.closest('tr');
  var $elements = $row.find('input');
console.log('haha');
  var data = $elements.serialize();
  $.ajax({
    type : 'POST',
    data : data,
    url : "update_mysql.php",
    success : function(result){
      alert(result);
      $elements.val('');
    }

  });

});
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SyntaxError
Mar 14 2018, 17:17
  
Пост #50



Репутация:   440  
Ветеран
*****

Группа: Пользователи
Сообщений: 7 467
С нами с: 7-December 12


(mzk @ Mar 14 2018, 17:02) Перейти к цитате

Испавил, для теста поставил console.log статический, но уведомление не прилетает.. Видать не доходит дело до этого. Где я напартачил?

$('.blueTable').on('click', '.button', function( event ) {

  var $button = $(event.target);
  var $row = $button.closest('tr');
  var $elements = $row.find('input');
console.log('haha');
  var data = $elements.serialize();
  $.ajax({
    type : 'POST',
    data : data,
    url : "update_mysql.php",
    success : function(result){
      alert(result);
      $elements.val('');
    }

  });

});



скинь кусок html своей таблицы. а то вслепую тяжело сказать.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Mar 14 2018, 17:53
  
Пост #51



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Скопировал элемент из гугл хрома:

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


кнопка "Оновити статус" рисуется только есть в базе mysql есть значение статуса для этого заказа.
в другом случае - рисуется кнопка "зібрати"

Сообщение отредактировал mzk - Mar 14 2018, 17:58
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Mar 14 2018, 22:24
  
Пост #52



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Хух, ребята.
Методом тыка и гугла, я решил вопрос. Проблема была вот здесь:
Было:

$('.blueTable').on('click', '.button', function( event ) {

Стало:

$(document).on('click', '.button', function( event ) {

Так же, я сделал еще 2 отдельных класса для кнопки "Оновити статус" и "Зібрати" чтобы хендлить запросы точно так же.
Апдейты запустились smile.gif

Осталось разобраться только в одном:
Почему русские буквы не уходят из этого инпута в БД ?
Алерты jquery возвращает с русскими буквами, а когда проверяю таблицу, то апдейт не проходит.

Через сам mysql workbench апдейты работают, таблицы с кодировкой uft8_general_ci
html и рhp тоже с кодировкой uft8
[s]

Всем большое спасибо! drinks.gif

Сообщение отредактировал mzk - Mar 14 2018, 23:36
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Jun 19 2018, 18:22
  
Пост #53



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Камрады, каким образом с помощью PHP можно разделить следующую траблицу?
Open in new windowIPB Image

Делаю селект из БД за последние N-минут и получаю результат, как на скрине.
Уникальное значение - первый столбик

Нужно условно "загнать" эти четыре разные части в переменные\массивы. Как?

Спасибо smile.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
YaAllex
Jun 20 2018, 20:54
  
Пост #54



Репутация:   80  
Постоялец
***

Группа: Пользователи
Сообщений: 1 184
С нами с: 15-November 11


(mzk @ Jun 19 2018, 19:22) Перейти к цитате

Делаю селект из БД за последние N-минут и получаю результат, как на скрине.

Результат селекта в виде чего получаете(массив, массив объектов)?

Сообщение отредактировал YaAllex - Jun 21 2018, 12:36
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Jul 27 2018, 17:57
  
Пост #55



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Парни, застрял... Не могу сообразить как мне получить инфу со всех массивов внутри массива...
Как пример, кусок массива:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

Пробовал вот так:

$all_orders - массив под спойлером
            foreach ($all_orders as $lmo) {
                echo $lmo[0]['tra_id']."<br>";
            }

На выходе:
1037214
388625
556432
58964


Получаю только самые первые значения. Это я понимаю, а как достать все остальные из каждого вложенного массива? Цикл в цикле? Как обыграть?

russian_ru.gif

Сообщение отредактировал mzk - Jul 27 2018, 17:57
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Jul 27 2018, 18:25
  
Пост #56



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


(mzk @ Jul 27 2018, 18:57) Перейти к цитате

Парни, застрял... Не могу сообразить как мне получить инфу со всех массивов внутри массива...
Как пример, кусок массива:
...
Получаю только самые первые значения. Это я понимаю, а как достать все остальные из каждого вложенного массива? Цикл в цикле? Как обыграть?

russian_ru.gif


Чашка кофе помогла smile.gif
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


Но задумка не очень помогла...
Как можно из этой всей кучи массивов сделать один массив средствами php ?
Нужно сортировать вывод инфы...

Сообщение отредактировал mzk - Jul 27 2018, 18:36
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
vas1
Jul 28 2018, 19:52
  
Пост #57



Репутация:   8  
Дух


Группа: Пользователи
Сообщений: 47
С нами с: 9-February 14


Типа такого что-то

$ordersSum = [];
foreach ($all_orders as $orders) {
                $ordersSum = array_merge($ordersSum, $orders);
}
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Nov 12 2018, 18:58
  
Пост #58



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Всем привет,
Ребята, возникла необходимость пулить инфу по SOAP веб-сервисам.
Есть вот такой xml, который отлично отрабатывает в SoapUI.
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


Вопрос: каким образом мне сделать такой массив в php, чтобы он съел две "communications" вкладки ?

Само колл делаю вот так:

$soap = new SoapClient($wsdl, $options);

$data = $soap->creater($params);


где: $params - массив из xml выше


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
phpkiev
Nov 12 2018, 19:20
  
Пост #59



Репутация:   309  
Ветеран
*****

Группа: Пользователи
Сообщений: 5 193
С нами с: 24-November 07


Это чей-то сторонний сервис или ваш? Вообще-то в структуре есть корневой элемент communications и внутри него расположены подэлементы. Хорошо видно, если красиво расставить теги smile.gif

<communications>
          <communications>
                    <communicationScopes>
                              <code>1</code>
                    </communicationScopes>
                    <value>0671234567</value>
                    <type>1</type>
                    <phoneType>2</phoneType>
                    <order>0</order>
                    <main>true</main>
          </communications>
          <communications>
                    <value>[email protected]</value>
                    <type>3</type>
                    <order>0</order>
                    <main>true</main>
          </communications>
</communications>


Обычная практика, хоть и странно, что подэлементы имеют такой-же тег, как и родительский. Я бы назвал родителя communications, а уже дочерние элементы иначе, ну например communication. Но в принципе, с известной долей желания, можно и такую структура разобрать, при этом загнать вложенные communications в массив.

типа


$communications[] = [
      'communicationScopes' => [
            'code' => 1
      ],
      'value' => 0671234567,
      'type' => 1,
      'phoneType' => 2,
      'order' => 0,
      'main' => true
];
$communications[] = [
      'value' => '[email protected]',
      'type' => 3,
      'order' => 0,
      'main' => true
];


ну и родитель

$params['communications'] = communications;


Сообщение отредактировал phpkiev - Nov 12 2018, 19:37
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Nov 13 2018, 9:52
  
Пост #60



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Странно, да... но изменять ничего не могу, к сожалению.
Схема тоже не сработает - применится только последний массив $communications[]
Вот сейчас у меня для одного выглядит так:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

5 Страницы  < 1 2 3 4 5 >
Reply to this topicStart new topic

 



- Упрощённая версия
Сейчас: 29th January 2025 - 4:41
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст.