За последние 24 часа нас посетили 52411 программистов и 1795 роботов. Сейчас ищут 988 программистов ...

Синтаксис в процессе присвоение значении к переменной

Тема в разделе "Вопросы от блондинок", создана пользователем Белый волк, 15 ноя 2008.

  1. Белый волк

    Белый волк Активный пользователь

    С нами с:
    11 авг 2008
    Сообщения:
    32
    Симпатии:
    0
    Меня этот синтаксис php просто убивает!
    Например, когда form1.l.value будет равно двойке, переменная faction должно быть равно "baga.php/2"
    Видать я где то символы не так проставил!
    Никто не подскажет?


    Код (Text):
    1. echo "
    2. <script language=\"javascript\">
    3. <!--
    4. function Process()
    5. {
    6.     var f =document.form1;
    7.     var action =  f.p.value;
    8.     if (action == \"\") return false;
    9.     var faction = '';
    10.     if (action == '1')
    11.     {
    12.     faction =";
    13. echo "baga.php/";
    14. echo "form1.l.value ;   }
    15.     else{
    16.         return false;
    17.     }
    18.     f.action = faction;
    19.     return true;
    20. }// -->
    21. </script>
    22. <form name=\"form1\" action=\"#\" method=\"post\" onsubmit=\"return Process();\">
    23.     <input type=\"text\" name=\"l\" />
    24.     <input type=\"password\" name=\"p\" />
    25.     <input type=\"submit\" value=\"go\" />
    26. </form>";
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Кого?
    У вас с JS скорее проблемы.
    Для обращения к элементам используйте DOM
    К слову, имена форм и Id не должны начинаться с цифр и не должны содержать спецсимволов.
    И главная ошибка, причина нерабочести, кроется в участке faction="; В отрисованном html/javascript это выглядит так:
    Подумайте, как это будет работать?












    PHP:
    1.  
    2. <?php
    3. echo <<<HEREDOC
    4. <script language="javascript">
    5. function Process()
    6. {
    7.    var action =  document.getElementById("p");
    8.    if (action == "") return false;
    9.    var faction = '';
    10.    if (action == '1')
    11.    {
    12.    faction = "baga.php/" + document.getElementById("l");  
    13.    }
    14.    else{
    15.       return false;
    16.    }
    17.    document.getElementById("form").action = faction;
    18.    return true;
    19. }
    20. </script>
    21. <form name="form1" action="#" method="post" onsubmit="return Process();" id="form">
    22.    <input type="text" name="l" id="l" />
    23.    <input type="password" name="p" id="p" />
    24.     <input type="submit" value="go" />
    25. </form>
    26. HEREDOC;
    27. ?>
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Белый волк
    В вашем коде PHP (всего-лишь одна функция echo) лишь выводит ява-скрипт, синтаксис которого убивает %)
     
  4. Белый волк

    Белый волк Активный пользователь

    С нами с:
    11 авг 2008
    Сообщения:
    32
    Симпатии:
    0
    2 Kreker
    Спасибо большое!

    PS. Вы забыли заэкранировать "baga.php/"
     
  5. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Белый волк
    Его не надо экранировать. Я использовал альтернативную разметку для строки -- <<<HEREDOC
    В ней экранирование не нужно.
     
  6. Белый волк

    Белый волк Активный пользователь

    С нами с:
    11 авг 2008
    Сообщения:
    32
    Симпатии:
    0
    2 Kreker
    Не могли бы Вы еще в одной задачке помочь?
    В сравнении if (action == '1') вместо единички должен проставится значение поле pw таблицы student !


    Код (Text):
    1. echo "
    2. <script language=\"javascript\">
    3. <!--
    4. function Process()
    5. {
    6.     var f =document.form1;
    7.     var action =  f.p.value;
    8.     Query=\"\";
    9.     Query = \"SELECT pw FROM student where  id=\" + form1.l.value;
    10.     Result = mysql_db_query ($DBName, $Query, $Link);
    11.    
    12.     if (action == \"\") return false;
    13.     var faction = '';
    14.     if (action == '1')
    15.     {
    16.  faction = \"baga.php\?v_student_id=\" + form1.l.value + \"&v_mektep_id=$v_mektep_id\";  
    17.     }
    18.     else{
    19.         return false;
    20.     }
    21.     f.action = faction;
    22.     return true;
    23. }// -->
    24. </script>
    25. <form name=\"form1\" action=\"#\" method=\"post\" onsubmit=\"return Process();\">
    26.     <input type=\"text\" name=\"l\" />
    27.     <input type=\"password\" name=\"p\" />
    28.     <input type=\"submit\" value=\"go\" />
    29. </form>";
     
  7. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Белый волк
    Вас не изменить. Посоветовал как лучше, а вы не приняли советы :(
    объектформы.value = "student"
     
  8. Белый волк

    Белый волк Активный пользователь

    С нами с:
    11 авг 2008
    Сообщения:
    32
    Симпатии:
    0
    Вы хотите сказать что без DOM'а никак не получится сделать так, чтобы переменная проставилась?
     
  9. sylex

    sylex Активный пользователь

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
    он имел ввиду, что данный подход является более современным и пора забывать объектформы.value :)
     
  10. Белый волк

    Белый волк Активный пользователь

    С нами с:
    11 авг 2008
    Сообщения:
    32
    Симпатии:
    0
    Ребята, до DOM'а мне еще далеко!
    Хотя бы подскажите как это можно организовать как Вы выражаетесь в стиле "объектформы.value "