Ассоциативный массив php из атрибутов данных и текстов html

<div class='title' data-x='car'>black</div>
<div class='title' data-x='home'>white</div>
<div class='title' data-x='train'>gold</div>

какой самый простой способ получить ассоциативный массив на стороне php:

$arr = ['car' => 'black', 'home' => 'white', 'train' => 'gold'];

Как вы собираетесь получить эти данные? Вы хотите отправить эти данные в PHP? Вы хотите очистить страницу с помощью PHP?

VLAZ 28.09.2018 14:29

поэтому html не создается php, но вы хотите создать массив html? - в этом случае вы можете отправить переменные в скрипт или функцию php с помощью POST или GET

Stender 28.09.2018 14:32
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
329
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот предложение, которое у меня есть:

  1. Используйте jQuery для добавления и сопоставления данных в одном объекте.
  2. Используйте Ajax для отправки данных
  3. Возьмите все опубликованные переменные и перенесите их в свой массив

Код:

$( document ).ready(function() {
    var data = {};
    $('.title').map(function(){
        data[$(this).data('x')] = $(this).html();
    }).get();
    $.ajax({
        type: "POST",
        url: 'whatever.php',
        data: data,
        success: (response)=>{
            console.info(response);
        }
    });
});
<script src = "https://code.jquery.com/jquery-3.3.1.min.js"></script>
<div class='title' data-x='car'>black</div>
<div class='title' data-x='home'>white</div>
<div class='title' data-x='train'>gold</div>

И файл whatever.php:

$arr = [];
if ($_POST) {
    foreach ($_POST as $k => $v) {
        $arr[$k] = $v;
    }
    var_dump($arr);
}

Вот вывод консоли:

array(3) {
    ["car"]=>string(5) "black"
    ["home"]=>string(5) "white"
    ["train"]=>string(4) "gold"
}

Проголосовали. Есть ли более короткий способ создать массив на стороне js, например var arr = collect($('.title').attr('data-x'))

user7461846 28.09.2018 15:35
$('.title').map(function(){data[$(this).data('x')] = $(this).html();}).get(); ближе к тому, что я знаю, поскольку $('.title') - это массив элементов с классом .title, и способов комбинировать data('x') и элемент .html() не так уж и много. Но задайте этот вопрос по другому вопросу, и я мог бы вскочить и поработать над этим ^^!
Jonathan Gagne 28.09.2018 16:20

Другие вопросы по теме