Не удается получить html события в списке для работы - PullRequest
0 голосов
/ 29 марта 2011

Я только начинаю заниматься веб-программированием, и поэтому я уверен, что это очень элементарная ошибка - но я не могу получить события для запуска в html-списке.Вот мой test.html в полном объеме:

<html><body>

<select name="drop1" id="Select1" size="4" multiple="multiple" onchange="alert('Click');">

    <option value="1" onselect="alert('Click');">item 1</option>

    <option value="2">item 2</option>

    <option value="3">item 3</option>

    <option value="4">item 4</option>

    <option value="0">All</option>

</select>

</body></html>

Я получаю тот же результат - ничего не происходит, когда я нажимаю на любой элемент в списке - когда вместо этого я вводю имя сценария php«бдительность».Что мне не хватает?Я немного погуглил, но ничего не нашел.

РЕДАКТИРОВАТЬ: Таким образом, получается, что эта проблема (особенно с «alert») зависит от браузера.В Chrome вам нужен префикс javascript: как указано EmCo.Но в Firefox все вышеперечисленное прекрасно работает как есть.

Ответы [ 3 ]

1 голос
/ 29 марта 2011

Код, который вы разместили, работает для меня, то есть показывает JavaScript alert(), когда выбор в select изменяется. Тем не менее, я обеспокоен тем, где вы говорите это:

когда я добавляю имя php script вместо 'alert'

Две вещи:

  1. Покажите нам действительный код, который не работает, пожалуйста.
  2. Как вы пытаетесь вызвать «скрипт PHP» из HTML / JavaScript? PHP - это технология на стороне сервера, HTML и JavaScript - на стороне клиента. Вы говорите, что только начинаете, так что похоже на то, что вы сталкиваетесь с разрывом между сервером и клиентом и не знаете, как действовать.

Функции PHP нельзя вызывать напрямую в браузере так, как я подозреваю, вы пытаетесь. К моменту доставки страницы в браузер весь PHP-скрипт уже запущен. То, что у вас осталось, это HTML и JavaScript на стороне клиента (в браузере). Есть много более сложных вещей, которые вы можете сделать с помощью JavaScript, включая даже обращение AJAX к ресурсам сервера (которые написаны на PHP, но опять-таки будут генерировать только данные на стороне клиента) и реагировать на вывод этих ресурсов. 1019 *

Что, в конечном счете, вы пытаетесь сделать, когда меняется выбор select?

1 голос
/ 29 марта 2011

Как я уже говорил в комментарии выше, я думаю, что вы пытаетесь воссоздать уже существующую функциональность.

Когда вы Submit свой <form>, все именованные элементы и их значения отправляются на страницу, указанную в атрибуте action, через атрибут method в вашем элементе <form>.

Пример:


www.mysite.com / myform.html
<form action="myscript.php" method="POST">
    <select name="drop1[]" size="4" multiple="multiple">
        <option value="1">item 1</option>
        <option value="2">item 2</option>
        <option value="3">item 3</option>
        <option value="4">item 4</option>
        <option value="0">All</option>
    </select>
    <input type="submit" name="submit" value="Submit">
</form>


www.mysite.com / myscript.php
<?php
    if (isset($_POST['submit'])) {
        print_r($_POST);
    } else {
        echo 'No data!';
    }
?>


Выход:
Array
(
    [drop1] => Array
        (
            [0] => 2
            [1] => 4
        )

    [submit] => Submit
)
0 голосов
/ 29 марта 2011

Вы не можете запустить PHP-скрипт напрямую из событий на стороне клиента.

Что вам нужно, так это AJAX, при изменении выпадающего списка инициируйте AJAX-запрос к серверу, который вызовет нужный PHP-скрипт.

Затем вы можете прочитать ответ и действовать в соответствии с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...