Вопросы по PHP |
Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6829-й день
Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua |
Вопросы по PHP |
Glavar |
Dec 12 2010, 20:35
Пост
#1
|
Репутация: 10 Активист Группа: Пользователи Сообщений: 379 С нами с: 11-May 08 |
Доброго время суток!
1. Скажите как мне обрезать первых 7 знаков, а остальные занести в базу? 2. У меня есть максимальное число голосов припустим 50, как мне присвоить ему 1 место 15 глосов - 5 место 43 голоса - 2 место 28 голосов - 3 место 24 - 4 место и т.д. и что бы место записывалось и обновлялось автоматически в базе данных? Тема для обговорення мови програмування PHP, всі сторонні коментарі будуть видалятися, а їх автори отримувати % Сообщение отредактировал BoyKot - Feb 3 2011, 13:22 |
SyntaxError |
Mar 14 2018, 12:21
Пост
#341
|
Репутация: 440 Ветеран Группа: Пользователи Сообщений: 7 467 С нами с: 7-December 12 |
SyntaxError, Если использовать этот код, то как мне в файле update_mysql.php дергать эти значения? Как пример: $lmorder1 = $_POST['lmorder1']; $lmorder2 = $_POST['lmorder2']; ... $lmstore1 = $_POST['lmstore1']; $lmstore2 = $_POST['lmstore2']; ... $sel1 = $_POST['sel1']; $sel2 = $_POST['sel2']; ... Так ? Насколько я понял тебе нужно при клике на кнопку в конкретной строке таблицы обновить данные этой строки. Если так, то в этом случае тебе нужно передать ID строки и значения полей. И на бэкэнде получать их: $row_id = $_POST['row_id']; $lmorder = $_POST['lmorder']; $lmstore = $_POST['lmstore']; $sel = $_POST['sel']; И в зависимости от $row_id записывать в базу. |
mzk |
Mar 14 2018, 12:51
Пост
#342
|
Репутация: 83 Cтаршой Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
Да, совершенно верно
Получается, айдишки полей инпута в каждой строке должны быть одинаковыми ? Выделил красными прямоугольниками: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « И еще вопрос, как я узнаю айдишку строки ? |
SyntaxError |
Mar 14 2018, 12:57
Пост
#343
|
Репутация: 440 Ветеран Группа: Пользователи Сообщений: 7 467 С нами с: 7-December 12 |
Да, совершенно верно Получается, айдишки полей инпута в каждой строке должны быть одинаковыми ? Выделил красными прямоугольниками: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « И еще вопрос, как я узнаю айдишку строки ? Для инпутов вместо 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 |
mzk |
Mar 14 2018, 13:15
Пост
#344
|
Репутация: 83 Cтаршой Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
С id строки понял, добавил, рисуется.
Но как мне использовать эту id на стороне update_mysql.php - не понятно. Или тут оно и не нужно? Как ключи поиска в бд для апдейта я использую только это: $lmorder = $_POST['lmorder']; $lmstore = $_POST['lmstore']; и делаю апдейт из этого инпута: $sel = $_POST['sel']; И еще, если id не может повторятся, то name может ? |
SyntaxError |
Mar 14 2018, 14:16
Пост
#345
|
Репутация: 440 Ветеран Группа: Пользователи Сообщений: 7 467 С нами с: 7-December 12 |
С id строки понял, добавил, рисуется. Но как мне использовать эту id на стороне update_mysql.php - не понятно. Или тут оно и не нужно? Как ключи поиска в бд для апдейта я использую только это: $lmorder = $_POST['lmorder']; $lmstore = $_POST['lmstore']; и делаю апдейт из этого инпута: $sel = $_POST['sel']; И еще, если id не может повторятся, то name может ? Тогда id для строки тебе не нужен, т.к. у тебя уже все есть. На бэкенде ты получаешь так: $lmorder = $_POST['lmorder']; $lmstore = $_POST['lmstore']; $sel = $_POST['sel']; И дальше делаешь апдейт базы, где ключи у тебя lmorder и lmstore. Каждый раз как ты будешь кликать на кнопку конкретной строки таблицы ты будешь передавать в update_mysql.php новые значения. Да, name может повторяться. Сообщение отредактировал SyntaxError - Mar 14 2018, 14:19 |
mzk |
Mar 14 2018, 14:48
Пост
#346
|
Репутация: 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 |
SyntaxError |
Mar 14 2018, 15:33
Пост
#347
|
Репутация: 440 Ветеран Группа: Пользователи Сообщений: 7 467 С нами с: 7-December 12 |
Классы в JS скрипте поменяй на свои.
|
mzk |
Mar 14 2018, 15:46
Пост
#348
|
Репутация: 83 Cтаршой Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
Классы в 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(''); } }); }); |
SyntaxError |
Mar 14 2018, 16:00
Пост
#349
|
Репутация: 440 Ветеран Группа: Пользователи Сообщений: 7 467 С нами с: 7-December 12 |
Вместо .table-row-class поставь класс с <TR>, или просто укажи 'tr'.
А вообще можешь использовать console.log() для дебага JS в браузере и смотреть что у тебе приходит в переменную. |
mzk |
Mar 14 2018, 17:02
Пост
#350
|
Репутация: 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(''); } }); }); |
SyntaxError |
Mar 14 2018, 17:17
Пост
#351
|
Репутация: 440 Ветеран Группа: Пользователи Сообщений: 7 467 С нами с: 7-December 12 |
Испавил, для теста поставил 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 своей таблицы. а то вслепую тяжело сказать. |
mzk |
Mar 14 2018, 17:53
Пост
#352
|
Репутация: 83 Cтаршой Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
Скопировал элемент из гугл хрома:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « кнопка "Оновити статус" рисуется только есть в базе mysql есть значение статуса для этого заказа. в другом случае - рисуется кнопка "зібрати" Сообщение отредактировал mzk - Mar 14 2018, 17:58 |
mzk |
Mar 14 2018, 22:24
Пост
#353
|
Репутация: 83 Cтаршой Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
Хух, ребята.
Методом тыка и гугла, я решил вопрос. Проблема была вот здесь: Было: $('.blueTable').on('click', '.button', function( event ) { Стало: $(document).on('click', '.button', function( event ) { Так же, я сделал еще 2 отдельных класса для кнопки "Оновити статус" и "Зібрати" чтобы хендлить запросы точно так же. Апдейты запустились Почему русские буквы не уходят из этого инпута в БД ? Алерты jquery возвращает с русскими буквами, а когда проверяю таблицу, то апдейт не проходит. Через сам mysql workbench апдейты работают, таблицы с кодировкой uft8_general_ci html и рhp тоже с кодировкой uft8 Всем большое спасибо! Сообщение отредактировал mzk - Mar 14 2018, 23:36 |
mzk |
Jun 19 2018, 18:22
Пост
#354
|
Репутация: 83 Cтаршой Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
|
YaAllex |
Jun 20 2018, 20:54
Пост
#355
|
Репутация: 80 Постоялец Группа: Пользователи Сообщений: 1 184 С нами с: 15-November 11 |
|
mzk |
Jul 27 2018, 17:57
Пост
#356
|
Репутация: 83 Cтаршой Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
Парни, застрял... Не могу сообразить как мне получить инфу со всех массивов внутри массива...
Как пример, кусок массива: » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Пробовал вот так: $all_orders - массив под спойлером foreach ($all_orders as $lmo) { echo $lmo[0]['tra_id']."<br>"; } На выходе: 1037214 388625 556432 58964 Получаю только самые первые значения. Это я понимаю, а как достать все остальные из каждого вложенного массива? Цикл в цикле? Как обыграть? Сообщение отредактировал mzk - Jul 27 2018, 17:57 |
mzk |
Jul 27 2018, 18:25
Пост
#357
|
Репутация: 83 Cтаршой Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
Парни, застрял... Не могу сообразить как мне получить инфу со всех массивов внутри массива... Как пример, кусок массива: ... Получаю только самые первые значения. Это я понимаю, а как достать все остальные из каждого вложенного массива? Цикл в цикле? Как обыграть? Чашка кофе помогла » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Но задумка не очень помогла... Как можно из этой всей кучи массивов сделать один массив средствами php ? Нужно сортировать вывод инфы... Сообщение отредактировал mzk - Jul 27 2018, 18:36 |
vas1 |
Jul 28 2018, 19:52
Пост
#358
|
Репутация: 8 Дух Группа: Пользователи Сообщений: 47 С нами с: 9-February 14 |
Типа такого что-то
$ordersSum = []; foreach ($all_orders as $orders) { $ordersSum = array_merge($ordersSum, $orders); } |
mzk |
Nov 12 2018, 18:58
Пост
#359
|
Репутация: 83 Cтаршой Группа: Пользователи Сообщений: 673 С нами с: 27-February 08 |
Всем привет,
Ребята, возникла необходимость пулить инфу по SOAP веб-сервисам. Есть вот такой xml, который отлично отрабатывает в SoapUI. » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « Вопрос: каким образом мне сделать такой массив в php, чтобы он съел две "communications" вкладки ? Само колл делаю вот так: $soap = new SoapClient($wsdl, $options); $data = $soap->creater($params); где: $params - массив из xml выше |
phpkiev |
Nov 12 2018, 19:20
Пост
#360
|
Репутация: 308 Ветеран Группа: Пользователи Сообщений: 5 193 С нами с: 24-November 07 |
Это чей-то сторонний сервис или ваш? Вообще-то в структуре есть корневой элемент communications и внутри него расположены подэлементы. Хорошо видно, если красиво расставить теги
<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 |
Упрощённая версия | Сейчас: 25th November 2024 - 1:32 |
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст. |