передать несколько имен в функции onchange () опции select - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь передать несколько текстов в опции выбора. Я попробовал много примеров здесь, но ни один не работает. где я не прав? Ниже мой код

<select name="region" id="region" class="region" onchange="change_pack();">
        <option selected="selected" value="'Base','abs','Ram'">North</option>
        <option value="'Base','noabs','Sita'">South</option>
</select>

ниже мой сценарий

function change_pack(pack, table, name){
    $.ajax({
      type: "POST",
      url: "extra/plan.php",
      data: "name="+name+"&tble="+table+"&pack="+pack,
      cache: false,
      success: function(response){
        //alert(response);return false;
        $("#plan").html(response);
      }
   });
}

Ответы [ 5 ]

0 голосов
/ 26 июня 2018
 <select name="region" id="region" class="region" onchange="change_pack(this.value);">
        <option selected="selected" value="'Base','abs','Ram'">North</option>
        <option value="'Base','noabs','Sita'">South</option>
</select>
function change_pack(data)
{   

    var [pack, table, name] = data.toString().split(",");

    $.ajax({
    type: "POST",
    url: "extra/plan.php",
    data: "name="+name+"&tble="+table+"&pack="+pack,
    cache: false,
    success: function(response)
        {
            //alert(response);return false;
            $("#plan").html(response);
        }
        });
}
0 голосов
/ 26 июня 2018

Вы можете попробовать использовать сериализацию формы ajax, чтобы получить все данные формы и передать их на сервер "https://api.jquery.com/serialize/"

https://jsfiddle.net/sjhu1nt5/13/

    <form>
    <select name="region" id="region" class="region" >
            <option selected="selected" value="'Base','abs','Ram'">North</option>
            <option value="'Base','noabs','Sita'">South</option>
    </select>

    </form>

    <div id="results">

    </div>
<script>
$( document ).ready(function() {
    $( "select" ).on( "change", change_pack );
});

    function change_pack(pack, table, name){
        // directly get all the data of form in str.
        var str = $( "form" ).serialize();
        $("#results").html(str);
        $.ajax({
          type: "POST",
          url: "extra/plan.php",
          data: "name="+name+"&tble="+table+"&pack="+pack,
          cache: false,
          success: function(response){
            //alert(response);return false;
            $("#plan").html(response);
          }
       });
    }
</script>
0 голосов
/ 26 июня 2018

Вы можете передавать значения через запятую в ajax:

HTML:

<select name="region" id="region" class="region" onchange="change_pack(this);">
        <option selected="selected" value="'Base','abs','Ram'">North</option>
        <option value="'Base','noabs','Sita'">South</option>
</select>

JS

function change_pack(data)
{ 

  var selectedval = $(data).val();
  var [pack, table, name] = selectedval.split(",");
    $.ajax({
    type: "POST",
    url: "extra/plan.php",
    data: "name="+name+"&tble="+table+"&pack="+pack,
    cache: false,
    success: function(response)
        {
            //alert(response);return false;
            $("#plan").html(response);
        }
  });
}

ДЕМО: https://codepen.io/creativedev/pen/aKaVBX

0 голосов
/ 26 июня 2018

option может иметь одно назначенное значение. Вы можете установить его как ключ вашего дополнительного объекта, который может хранить дополнительные данные:

<select name="region" id="region" class="region" onchange="change_pack();">
  <option selected="selected" value="north">North</option>
  <option value="south">South</option>
</select>

JS:

var values = {
  north: {
    name: 'Base',
    table: 'abs',
    pack: 'Ram'
  },
  ...
}

function change_pack(value) {
  var data = values[value];
  // if `north` will be selected, data will contain:
  // { name: 'Base', table: 'abs', pack: 'Ram' }
}
0 голосов
/ 26 июня 2018

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

<select name="region" id="region" class="region" onchange="change_pack(this.value);">
        <option selected="selected" value="'Base','abs','Ram'">North</option>
        <option value="'Base','noabs','Sita'">South</option>
</select>

ЯШ:

function change_pack(data)
{
    var [pack, table, name] = data.split(",");
    $.ajax({
    type: "POST",
    url: "extra/plan.php",
    data: "name="+name+"&tble="+table+"&pack="+pack,
    cache: false,
    success: function(response)
        {
            //alert(response);return false;
            $("#plan").html(response);
        }
        });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...