Есть простой multiple select
:
<select class="chosen" multiple="true" name="name[]">
<option value="1">Англия</option>
<option value="2">Бельгия</option>
<option value="3">Венгрия</option>
</select>
Есть ли возможность в массив name[]
получать не только value's
, но и текст внутри тега <option>
?
Нужны и значения и текст, парами
В поисках решения на php
, либо jquery
, либо в рамках JQuery Chosen
Волье как массив представить
option value='1; Англия'
на пхп разобрать explode(';',$val)
$(".chosen option:selected").text();
Вообще, передавать не только value, но и сам текст тега - это не очень хороший стиль. Видимо поэтому это не предусмотрено по умолчанию.
Честно говоря, мне больше нравится ответ @Naumov .
Но можно и так:
<?php
if (isset($_POST['method']) && $_POST['method']=="ajax") {
//print_r($_POST);
$postData = [];
if (!empty($_POST['postData'])) {
foreach ($_POST['postData'] as $item) {
$value = $item[1];
if (count($item)>2) $value = [$item[1], $item[2]];
if (!isset($item[0])) {
$postData[$item[0]] = $value;
}
else {
if (is_array($postData[$item[0]])) {
$postData[$item[0]][] = $value;
}
else {
$tmp = $postData[$item[0]];
$postData[$item[0]] = [$tmp, $value];
}
}
}
}
return;
}
echo '
<form action="api.php" data-form="ajax">
<select name="myselect" multiple="multiple" size="5">
<option value="1">En</option>
<option value="2">Be</option>
<option value="3">Ve</option>
</select>
<br><br>
<button type="submit">submit</button>
</form>
<script src="https://code.jquery.com/jquery-2.2.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("form[data-form=ajax]").submit(function() {
var elements = $(this).find("input[type=text], input[type=checkbox]:selected, input[type=radio]:selected, textarea, select"),
postData = [];
if (elements.length>0) {
for(var i = 0; i < elements.length; i++) {
if (elements.eq(i).is("select")) {
var elSelected = elements.eq(i).find("option:selected");
if (elSelected.length>0) {
for(var j = 0; j < elSelected.length; j++) {
postData.push([elements.eq(i).attr("name"), elSelected.eq(j).val(), elSelected.eq(j).text()]);
}
}
}
else {
postData.push([elements.eq(i).attr("name"), elSelected.eq(j).val()]);
}
}
}
$.ajax({
type: "POST",
url: $(this).attr("action"),
data: ({
postData : postData,
method : "ajax"
}),
success: function(msg){
alert(msg);
}
});
return false;
});
});
</script>
';
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте есть слайд шоу с автопрокруткой картинок, и есть отдельный блок в котором расположены круги которые показывают какая картинка...
ЗдравствуйтеНе получается почему-то установить фиксированную ширину для кнопки
У меня есть массив ссылок на сайт, на котором сделан скриншот, такого типа: