Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.03.2019, 13:45
Аспирант
Отправить личное сообщение для crystaltrumpet Посмотреть профиль Найти все сообщения от crystaltrumpet
 
Регистрация: 28.06.2017
Сообщений: 42

Передача переменной JS в PHP или наоборот?
Хочу написать красиво код а не делать бесконечные:
else if (opt == 1) {}
else if (opt == 2) {}
else if (opt == 3) {}
и так далее...
Сейчас мне приходится вручную подставлять в многомерный массив
<?=$types[1]["max_sum"] ?>
<?=$types[2]["max_sum"] ?>
<?=$types[3]["max_sum"] ?>
и так далее
А я хочу один раз написать :
<?=$types[opt]["max_sum"] ?>

Чтобы при переключении <select> у меня менялись значения в многомерном массиве.
Можно ли это сделать не плодя бесконечные else if а просто меняя значения в многомерном php массиве $types? Меняя первое значение в массиве по типу:
<?=$types[opt]["max_sum"] ?>

Я больше часа искал ответ но так и не нашел к сожалению(
Вот мой кусок кода:

var opt = this.value;
  var get = document.getElementById('psevdo');
  
  if (opt >= 4) {
    document.getElementById('whats').innerHTML = "Введите сумму от <?=$types[3]["min_sum"] ?> до <?=$types[3]["max_sum"] ?> руб.: &nbsp;";
    get.value = '<?php echo $types[3]["min_sum"]; ?>';
   
    
  } else if (opt == 3) {
    document.getElementById('whats').innerHTML = "Введите сумму от <?=$types[2]["min_sum"] ?> до <?=$types[2]["max_sum"] ?> руб.: &nbsp;";
    get.value = '<?php echo $types[2]["min_sum"]; ?>';
    
    
  } else if (opt == 2) {
    document.getElementById('whats').innerHTML = "Введите сумму от <?=$types[1]["min_sum"] ?> до <?=$types[1]["max_sum"] ?> руб.: &nbsp;";
    get.value = '<?php echo $types[1]["min_sum"]; ?>';

Последний раз редактировалось crystaltrumpet, 25.03.2019 в 13:51.
Ответить с цитированием
  #2 (permalink)  
Старый 25.03.2019, 13:52
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Кодируйте ваш массив $types в json (json_encode), json вставляйте в js-переменную, дальше работайте по-человечески только с js, без php-инъекций.
Ответить с цитированием
  #3 (permalink)  
Старый 25.03.2019, 14:00
Аспирант
Отправить личное сообщение для crystaltrumpet Посмотреть профиль Найти все сообщения от crystaltrumpet
 
Регистрация: 28.06.2017
Сообщений: 42

Nexus подскажите как мне перекодировать в json_encode если мой массив $type имеет вот такую структуру:
Array
(
    [0] => Array
        (
            [0] => 1
            [id] => 1
            [1] => 0
            [user_id] => 0
            [2] => 
            [user] => 
            [3] => Хапуга
            [name] => Хапуга
        )
    [1] => Array
        (
            [0] => 2
            [id] => 2
            [1] => 0
            [user_id] => 0
            [2] => 
            [user] => 
            [3] => Гаврила
            [name] => Гаврила
        )
)

Я пишу:
$jso = json_encode($types);
но это не работает я так понимаю из за многомерного массива

Последний раз редактировалось crystaltrumpet, 25.03.2019 в 14:03.
Ответить с цитированием
  #4 (permalink)  
Старый 25.03.2019, 14:16
Новичок на форуме
Отправить личное сообщение для QoreCode Посмотреть профиль Найти все сообщения от QoreCode
 
Регистрация: 25.03.2019
Сообщений: 8

Всё замечательно работает. Строку просто передайте в js любым доступным вам способом (хоть как глобальную переменную), а затем просто разкодируйте методом JSON.parse() пример
Ответить с цитированием
  #5 (permalink)  
Старый 25.03.2019, 14:19
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

crystaltrumpet, вы обращаетесь к данным по числовым ключам?
Может стоить отказаться от mysqli_fetch_array в пользу mysqli_fetch_assoc?

Сообщение от crystaltrumpet
это не работает
Вы уверены?

upd. у вас структуры данных в первом и третьем постах разнятся.

Последний раз редактировалось Nexus, 25.03.2019 в 14:24.
Ответить с цитированием
  #6 (permalink)  
Старый 25.03.2019, 14:22
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Сообщение от QoreCode
а затем просто разкодируйте методом JSON.parse()
а почему не так (без декодирования)?
var types=<?php echo json_encode($types); ?>;
Ответить с цитированием
  #7 (permalink)  
Старый 25.03.2019, 14:30
Новичок на форуме
Отправить личное сообщение для QoreCode Посмотреть профиль Найти все сообщения от QoreCode
 
Регистрация: 25.03.2019
Сообщений: 8

Тестил в браузере.
Проверил сейчас вариант var types=<?php echo json_encode($types); ?>;
Работает.
Снимаю шляпу)
Ответить с цитированием
  #8 (permalink)  
Старый 25.03.2019, 14:44
Аспирант
Отправить личное сообщение для crystaltrumpet Посмотреть профиль Найти все сообщения от crystaltrumpet
 
Регистрация: 28.06.2017
Сообщений: 42

Сообщение от QoreCode Посмотреть сообщение
Тестил в браузере.
Проверил сейчас вариант var types=<?php echo json_encode($types); ?>;
Работает.
Снимаю шляпу)
у меня выдает ошибку наверное нужны кавычки:
var types='<?php echo json_encode($types); ?>';
вот что пишет:
Uncaught SyntaxError: Unexpected token ;
var types=;

Последний раз редактировалось crystaltrumpet, 25.03.2019 в 14:55.
Ответить с цитированием
  #9 (permalink)  
Старый 25.03.2019, 14:53
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Сообщение от crystaltrumpet
у меня выдает ошибку наверное нужны кавычки:
Наоборот, амперсанды апострофы удалите.

Последний раз редактировалось Nexus, 25.03.2019 в 15:11.
Ответить с цитированием
  #10 (permalink)  
Старый 25.03.2019, 15:06
Аспирант
Отправить личное сообщение для crystaltrumpet Посмотреть профиль Найти все сообщения от crystaltrumpet
 
Регистрация: 28.06.2017
Сообщений: 42

а где амперсанды ?
& тут нет нигде

В общем не могу понять почему у меня такие проблемы с этой штукой...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача переменных с js в php vladiksan1998 AJAX и COMET 1 24.05.2018 04:37
получение id строки и передача значения переменной php msscriin jQuery 17 27.10.2013 11:52
Передача переменной из js в php, посредством ajax 9xakep Серверные языки и технологии 32 05.05.2012 13:02
Передача данных из JS в PHP - что не так? Rokugan Общие вопросы Javascript 16 30.09.2011 18:52
Что выбрать XML или JSON для передачи Ajax - ом из PHP в JS Gozar Общие вопросы Javascript 20 16.08.2009 23:36