Пример неудачного решения для передачи данных из скрипта PHP в JavaScript


Исходный код

   echo '<script>';
  
   echo "function filtover(element) { element.style.color='red'; }";
   echo "function filtout(element) { element.style.color='black'; }";
   
   echo "function filtOpt()";
     echo "{";
       
       for ($i = 1; $i <= $amGroups; $i++)
         {
           echo "if(!filtOpt.option" . $i . ") filtOpt.option" . $i . " = '" . $params[$i - 1][0] . "=" . $_SESSION[$params[$i - 1][0]] . "';";
         }

      echo "switch(opt)";
        echo "{";

          for ($i = 1; $i <= $amGroups; $i++)
            {
              for ($j = 1; $j <= $amElements[$i - 1]; $j++)
                {
                   echo "case '" . $i . "_" . $j . "': ";
                   for ($m = 1; $m <= $amElements[$i - 1]; $m++)
                     {
                       if ($m == $j) echo"document.getElementById('opt" . $i . "_" . $m . "').className = 'checkruby-on';";
                       else echo"document.getElementById('opt" . $i . "_" . $m . "').className = 'checkruby';";
                     }
                   echo "break;";
                }
            }   
        echo "case 'iWantToSee': ajaxRequest(";
          
          for ($i = 1; $i <= $amGroups; $i++)
            {
              echo "filtOpt.option" . $i;
              if ($i != $amGroups) echo" + '&' + ";
            }
          
        echo ");"; // цифры - это размеры ajax-блока, появляющегося при отсутствии результатов работы фильтра
      echo "}";
    echo "}";

echo '</script>';

Что не так в исходном коде

Неумение пользоваться штатными средствами порождает странные решения.

Большинство задач решаются просто, нужно только узнать, как именно.

Видимо, должна быть какая-то чуйка, чтобы понимать: насколько твоё решение вписывается в рамки общепринятых приёмов. Просто помни, что если ты работаешь с инструментом старше 20 лет, и не занимаешься разработкой ядерного реактора, то твою задачу с помощью твоего инструмента уже решали десятки тысяч людей — узнай, как они это делали.