JQuery: отправить выпадающий список, вернуть сообщение об успехе - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть следующий код jQuery:

$(document).ready(function(){
    $("form#submit").submit(function() {
    // we want to store the values from the form input box, then send via ajax below
    var fname = $('#fname').attr('value');
    var lname = $('#lname').attr('value');
        $.ajax({
            type: "POST",
            url: "ajax.php",
            data: "fname="+ fname +"& lname="+ lname,
            success: function(){
                $('form#submit').hide(function(){$('div.success').fadeIn();});
            }
        });
        return false;
    });
});

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

Ответы [ 3 ]

0 голосов
/ 24 февраля 2012

Вы не используете правильные методы jQuery. Используйте .val() вместо .attr('value'). Это относится к каждому элементу формы (input, textarea, select). Другие предложения могут заключаться в использовании короткого метода для POST - $.post(), передавая ваши данные как object - data: { fname: fname, lname: lname }

0 голосов
/ 24 февраля 2012

Используйте .val для получения выпадающего выбранного значения.

$(document).ready(function(){
  $("form#submit").submit(function() {
    /* Get the dropdown selected value using .val() */
    var value = $("#dropdown").val();
    $.ajax({
      type: "POST",
      url: "ajax.php",
      /* Send dropdown selected value as a parameter */
      data: { dropdown: value },
      success: function(){
        $('form#submit').hide(function(){
          $('div.success').fadeIn();
        });
      }
    });
  return false;
  });
});

Просто измените #dropdown с вашим выпадающим списком id.

0 голосов
/ 24 февраля 2012

Примерно так, но я предлагаю вам при создании параметра данных для методов jQuery ajax передать его как объект, тогда jQuery закодирует всю строку, и у вас будет правильный URL-адрес, и правильные данные будут переданы в ваш скрипт.Например,

data : {fname = fname, lname = lname }

, чтобы передать только значение из выпадающего списка, сделайте это

data: { your_variable : $('#id_of_drop_down_box').val() }

, чтобы ваш метод выглядел как

$(document).ready(function(){
$("form#submit").submit(function() {
// we want to store the values from the form input box, then send via ajax below
var fname     = $('#fname').attr('value');
var lname     = $('#lname').attr('value');
    $.ajax({
        type: "POST",
        url: "ajax.php",
        data: { your_variable : $('#id_of_drop_down_box').val() },
        success: function(){
            $('form#submit').hide(function(){$('div.success').fadeIn();});

        }
    });
return false;
});
});

и запомните«your_variable» - это имя, которое вы соберете из глобальной переменной $ _POST в php.Так что если вы назовете его «MyDropDownBox», то в php вы получите к нему доступ

$var = $_POST["MyDropDownBox"]

Надеюсь, это поможет

...