разместить или получить несколько значений с несколькими ссылками - PullRequest
0 голосов
/ 15 ноября 2011

Я новичок в этом, поэтому, пожалуйста, будьте терпеливы со мной ...

Я хочу иметь возможность передавать несколько переменных на другую страницу, используя ссылки, например:

<a href="value1">some text</a>,<a href="value2">some text2</a>,<a href="value3">some text3</a>,<a href="value4">some text4</a>

Я хочу иметь возможность использовать это как «мультиселектор», чтобы пользователь мог щелкнуть (выбрать) любой текст, который он хочет, и каким-то образом с помощью кнопки «отправить» отправить выбранные значения по почте или получить.

Я не хочу использовать меню или список, так как я пытаюсь показать текст, и каждая ссылка содержит различные части текста, такие как параграфы в главе, поэтому пользователь нажимает на абзац (который являетсяили, по крайней мере, похож на один) и отправьте его значение на другую страницу, однако я хочу несколько парраграфов, чтобы пользователь мог выбирать и, если возможно, отменять выбор абзацев.правильное направление, если это возможно

Ответы [ 2 ]

0 голосов
/ 15 ноября 2011

Вот как можно реализовать это:

HTML :

<a data-id="value1" href="value1">some text</a>,<a data-id="value2" href="value2">some text2</a>,<a data-id="value3" href="value3">some text3</a>,<a data-id="value4" href="value4">some text4</a>
<input type="button" id="submit" value="submit"></input>

Javascript:

var els = document.getElementsByTagName("a");
var sz = els.length;

var o = {};
for(var n = 0; n < sz; ++n) {
    els[n].onclick = function(e) {
        e.preventDefault();
        var s = e.currentTarget.getAttribute("data-id");
        if(o[s] !== undefined) {
            delete o[s];
        } else {
            o[s] = "";
        }
    };
}
document.getElementById("submit").onclick = function(e) {
    var s = "";
    for(key in o) {
        s += key + "&";
    }
    var location = s.substring(0, s.length-1);
    // redirect user using location as parameter list or send ajax request
};

(я использую карту, а не массив в приведенном выше, чтобы избежать необходимости проходить массив при каждом нажатии)

http://jsfiddle.net/5y7wK/

0 голосов
/ 15 ноября 2011

Лучший способ передать несколько значений - это отправка формы или запрос AJAX. У вас может быть несколько флажков, чтобы при выборе пользователем желаемых значений и отправке их в одном запросе.

Вот образец: Образец



<form action="/myurl" method="POST">
        <input id="Val1" name="paragraph" type="checkbox" value="value1"/>
        <label for="Val1">Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
        In egestas tempus dictum. Mauris purus urna, congue non scelerisque non,
        feugiat at arcu. Donec venenatis facilisis fermentum. Morbi ac lorem odio. 
        Cras nulla justo, pharetra et placerat ut, sagittis nec urna. 
        Praesent luctus, sem ac lobortis aliquam, purus sapien tempor dui, nec 
        pretium metus leo eu ligula. Cras ac egestas dolor. 
        </label>
        </br>
        </br>
        <input id="Val2" name="paragraph" type="checkbox" value="value2"/>
        <label for="Val2">Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
        In egestas tempus dictum. Mauris purus urna, congue non scelerisque non,
        feugiat at arcu. Donec venenatis facilisis fermentum. Morbi ac lorem odio. 
        Cras nulla justo, pharetra et placerat ut, sagittis nec urna. 
        Praesent luctus, sem ac lobortis aliquam, purus sapien tempor dui, nec 
        pretium metus leo eu ligula. Cras ac egestas dolor. </label>
        </br>
        <input type="submit"/>
    </form>
...