За последние 24 часа нас посетили 17628 программистов и 1649 роботов. Сейчас ищут 894 программиста ...

Проблемка (PHP+Javasript)

Тема в разделе "JavaScript и AJAX", создана пользователем s_rx, 14 янв 2011.

  1. s_rx

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

    С нами с:
    14 янв 2011
    Сообщения:
    3
    Симпатии:
    0
    Здраствуйте,нужнен совет.
    Есть PHP скрипт с подобным содержанием :

    PHP:
    1. <input type=text name=nick>
    2. <?
    3. echo "<a href=\"javascript:document.post.nick.value = '123'\">123</a>";
    4. ?>
    после клика по ссылке "123" по идее в edit должно устанавливатся значение "123",но этого не происходит,уже перепробывал все возможные комбинации(document.post.nick.value,document.nick.value etc),в javascript я ноль,поэтому прошу вас подсказать что в коде не так,и по возможности показать решение проблемы
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Здравствуйте! Вас приветствует круглосуточная поддержка php.ru!

    При использовании javascript-кода в атрибутах тэга <a> необходимо помнить, что назначение этого тэга - это изменение текущего url. В Вашем случае браузер отрывает на месте текущей страницы новую, адрес у которой является кодом javascript. Код выполняется, но так как элементов формы на новой странице не существует, то код работать не будет.
    Чтобы избежать такого поведения, javascript-код необходимо обернуть в функцию void():
    <a href="javascript: void(... somecode ...)">123</a>

    Значения атрибутов в тегах рекомендуется брать в кавычки:
    type="text"

    Тот код, который Вы используете - устарел, но местами еще поддерживается. К сожалению, печатная литература в России не поспевает за прогрессом и порой сильно отстает, поэтому там такой код можно встретить очень часто.
    Для обращения к элементам используйте id:
    <input type="text" name="nick" id="nickname">
    <a href="javascript:void(document.getElementById('nickname').value = '123')">123</a>
     
  3. s_rx

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

    С нами с:
    14 янв 2011
    Сообщения:
    3
    Симпатии:
    0
    Спасибо за подсказку,но данный метод корректно работает только на 6 Explorer'е а на новой опере(11),и на мозилле работать не хочет.
    При включённой опции "Показывать консоль ошибок" опера выдаёт следующее -
    Код (Text):
    1. Uncaught exception: TypeError: Cannot convert 'document.getElementById('123')' to object
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    id не может быть числом.
     
  5. s_rx

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

    С нами с:
    14 янв 2011
    Сообщения:
    3
    Симпатии:
    0
    Число "123" я для примера привёл,изначально этот код выводит значение переменной,а само значение устанавливается в edit -
    Код (Text):
    1. echo "<a href=\"javascript:void(document.getElementById('nick').value = '$g');\">$g</a>"
     
  6. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    <input type="text" id="nick" name="nick" value="some">
    <a href="javascript:void(0);" onclick="document.getElementById('nick').value = '$g';">$g</a>

    жирным выделил то, на что нужно обратить внимание