Как добавить скрытое значение в теги UL и LI?

У меня есть несколько таких вариантов:

<li>
<a href="#" title="" class="selected"><span class="to-admin">Administrator</span></a>
<input id="shareto" type="hidden" value="0-1" name="shareto">
</li>
<li>
<a href="#" title=""><span class="to-finance">Finance</span></a>
<input id="shareto" type="hidden" value="1-1" name="shareto">
</li>
<li>
<a href="#" title=""><span class="to-technician">Technician</span></a>
<input id="shareto" type="hidden" value="1-0" name="shareto">
</li>
<li>
<a href="#" title=""><span class="to-lawyer">Legal</span></a>
<input id="shareto" type="hidden" value="0-0" name="shareto">
</li>

и теперь я хочу «поймать» эту переменную, используя этот PHP:

$Type = $_POST['shareto'];

почему я всегда получаю последнее значение, независимо от того, какой вариант я выбираю? как это сделать правильно? спасибо раньше.


person Saint Robson    schedule 26.07.2012    source источник
comment
Что именно ты пытаешься сделать? И вы получаете только 1 значение, потому что у вас одинаковые имена для всех входов.   -  person asprin    schedule 26.07.2012


Ответы (2)


Пожалуйста, проверьте эту рабочую ссылку скрипки http://jsfiddle.net/7GHug/

Я думаю, вы хотите что-то вроде этого.

<ul>
<li data-val="0-1">
<a href="#" title="" class="selected"><span class="to-admin">Administrator</span></a>

</li>
<li data-val="1-1">
<a href="#" title=""><span class="to-finance">Finance</span></a>

</li>
<li data-val="1-0">
<a href="#" title=""><span class="to-technician">Technician</span></a>
</li>
<li data-val="0-0">
<a href="#" title=""><span class="to-lawyer">Legal</span></a>
<input id="shareto" type="hidden" value="" name="shareto">
</li>
</ul>​

Javascript

$(document).ready(function($) {
        $('ul li').on('click', function() {
            $('input#shareto').val($(this).data('val'));
        });
    });

С помощью одного скрытого ввода вы можете обновить значение на основе щелкнутого li. ​

person Vins    schedule 26.07.2012
comment
спасибо за скрипку, Винс. Я забыл сказать вам, что эти теги UL и LI находятся под тегом FORM. означает, что у меня есть кнопка SUBMIT внизу. мне нужно изменить ваш Javascript? потому что мой PHP по-прежнему получает пустое значение после нажатия кнопки отправки. - person Saint Robson; 26.07.2012
comment
Хорошо, как вы упомянули в комментариях выше. Как я узнаю, какой li выбран изначально. Если вы знаете начальный выбранный li, просто введите его значение во входные данные, поскольку я оставил его пустым. Я думаю, что это должно сделать. - person Vins; 26.07.2012
comment
Вы имеете в виду добавление исходного выбранного значения к этому: ‹input id=shareto type=hidden value= name=shareto›? Я попытался поставить «0-1» в качестве начального значения «Администратор»: ‹input id=shareto type=hidden value=0-1 name=shareto›, но независимо от того, какой вариант я выберу, значение по-прежнему 0-1. не может измениться на 0-0, когда я выбираю Legal (например). - person Saint Robson; 26.07.2012
comment
Если вы реализовали мой код, он поместит это значение. Проверьте ссылку скрипки, я сделаю ее текстовой, а не скрытой. jsfiddle.net/7GHug/1 Проверьте это. - person Vins; 26.07.2012
comment
Винс, здесь происходит что-то странное... Я скопировал и вставил вашу скрипку сюда: roberthanson.net/index.html но все равно значение не меняется, как в Fiddle. что с этим не так? - person Saint Robson; 26.07.2012
comment
Проверьте версию jQuery Пожалуйста, используйте последнюю версию. Поскольку я использую метод .on, представленный в версии 1.7, измените свой jquery или измените .on на старый метод щелчка. - person Vins; 26.07.2012
comment
Пожалуйста, попробуйте это. jsfiddle.net/7GHug/2 Я сменил скрипт на 1.6.4 и изменил свой код. - person Vins; 26.07.2012

Если вы измените name=shareto на name=shareto[], то $_POST['shareto']; будет массивом, содержащим все значения.

Также элемент ids должен быть уникальным.

person Musa    schedule 26.07.2012
comment
спасибо за Ваш ответ. Мне просто понравилось то, что ты сказал. но когда я помещаю этот код на свой PHP: print_r ($ Type); Я получаю все содержимое массива. как получить значение массива, связанное с выбранной опцией? Благодарю. - person Saint Robson; 26.07.2012
comment
@RobertHanson Итак, вам нужно конкретное значение? На основании каких критериев? - person Musa; 26.07.2012
comment
на основе выбранного ЛИ. например, если я выберу «ФИНАНСЫ», значение $Type будет «1-1». - person Saint Robson; 26.07.2012
comment
Если это основано на щелчке по ли, то ответ Винса будет тем, что вы хотите - person Musa; 26.07.2012