Как получить идентификатор выбранного значения из выпадающего списка и отправить его модалу в php с помощью ajax? - PullRequest
0 голосов
/ 06 февраля 2019

[1]: https://i.stack.imgur.com/8CoFa.png

Кнопка:

echo CHtml :: link (', array (' modelo / ajaxnuevomodelo ',' id '=> $model-> marcaID), массив ('class' => 'btn btn-sm btn-primary', 'размещение данных' => 'top', 'data-target' => '# extraModal', 'data-toggle'=>' модальный», 'OnClick' => 'AjaxExtra ($ (это) .attr ( "HREF"))));?>

Функция ajax

    $('#Vehiculo_marcaID').change(function(){
        //var vehiculomarca = jQuery('#Vehiculo_marcaID').val();
        var vehiculomarca = $('#Vehiculo_marcaID').val();

// Я НЕ ЗНАЮ, ЧТО ДЕЛАТЬ !!!});

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

В вашем вопросе недостаточно важной информации.Во-первых, что конкретно представляет собой разметка HTML?У нас нет обозначений идентификатора, класса или аналога, чтобы сделать правильный селектор для извлечения желаемого значения.

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

Итак, вот так.

Из того, что мы можем истолковать из вашего скриншота, у вас есть элемент <select>, содержащий некоторые параметры, которые вы можетехотел бы проанализировать функцию AJAX.Поскольку вы можете иметь несколько вариантов выбора (судя по кнопке «+»), самый простой способ - использовать функцию serialize() (обратите внимание, что это нотация jQuery), чтобы сериализовать ваши входные данные в формат массива.Затем вам нужно будет перебрать этот массив везде, где вы решите обрабатывать данные, проанализированные с помощью функции AJAX.

Чтобы сериализовать ваши данные, вам понадобится элемент, содержащий вашивходные данные.Я предполагаю, что у вас уже есть элемент <form> или аналогичный (элемент div также работает), который содержит ваши входные данные.

Этот элемент, содержащий ваши входные элементы, должен иметь id илианалогичный атрибут, так что у нас есть что-то, на что нужно ориентироваться в плане сериализации данных.

пример:

<div id="myForm">
    <select class="mySelect">
        <option>option1</option>
        <option>option2</option>
        <option>option3</option>
    </select>
</div>

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

Так что в моем случае мой селектор будет выглядеть так (в нотации jQuery):

$('#myForm').serialize();.

Обратите внимание, что существует 2 способа сериализации данных, в зависимости от того, что вы хотите..serialize(); - это стандартный формат кодированных сериализованных URL-адресов.Другой вариант - .serializeArray();, который дает вам объект JSON.Все зависит от того, с каким форматом данных вы хотите работать.

С этой информацией мы теперь можем перейти к самой функции AJAX.Обратите внимание, что я снова буду использовать нотацию jQuery.Мне действительно нравится нотация jQuery для функций AJAX, потому что ее легко читать и понимать.Также обратите внимание, что я буду использовать свои собственные указанные псевдо-нотации , чтобы сохранить преемственность в том, что я сейчас представляю в этом ответе.

Пример функции AJAX:

<script>
function submitData() {
    $.ajax({
        type : "POST",
        url : "/your_page.php",
        data : {
            formData=$('#myForm').serialize()
        },
        success: function (html) {
            //do something on success
        }
    })
}
</script>

Во-первых, в функции AJAX мы определяем, как наши данные будут анализироваться в опции type:.Наиболее распространенными типами являются POST и GET.Вы можете посмотреть на различия между этими двумя методами анализа данных и определить, какая версия будет лучше для вашего решения.В вашей ситуации я бы предположил, что лучшим выбором будет использование POST .

Во-вторых, мы выбираем, куда будут отправляться данные (какая конкретно страница / URL).Это то место, куда будут отправляться данные, и где вы будете обрабатывать данные, чтобы делать с ними все, что вы хотите.

В-третьих, мы указываем данные, которые мы отправляем.Это восходит к тому, что я уже коснулся о селекторах и сериализации данных в массив, который вы можете перебрать, чтобы получить указанные результаты.

Наконец, я также включил функцию success , если вы хотите иметь некоторые дополнительные функции в случае успеха.Это может быть сообщение пользователю, информирующее его о том, что он действительно отправил данные для оценки или что вы хотите сделать.Вы можете оставить это полностью, но я лично считаю, что это хорошая функциональность.С этим можно многое сделать.

Обратите внимание, что я инкапсулировал саму функцию AJAX в другую функцию с именем submitData().Вы можете запустить это, имея атрибут onclick на кнопке, которая отправляет данные.Вы также можете использовать функцию onclick для обработки функции AJAX, что было бы лучшим примером, если я полностью честен.$('#myButton').on("click", function() { //do the AJAX function });.

Так вот как вы можете сделать это с помощью AJAX.Надеюсь, это поможет!

0 голосов
/ 06 февраля 2019

Segue um instancelo funcional Перевод Вот функциональный пример

$(document).ready(function(){
    $("select#Vehiculo_marcaID").change(function(){
        var marca = $(this).children("option:selected").val();
        alert("Você selecionou a marca - " + marca);
    });
});

Вы можете сделать это

$("#btnid").on('click', function(){
  let marca = $("select#Vehiculo_marcaID").children("option:selected").val();
  let modelo = $("select#Vehiculo_modeloID").children("option:selected").val();
  Here the rest of your logic to open the modal
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...