Опубликовать значение элемента SELECT - PullRequest
2 голосов
/ 11 августа 2009

Я использую jquery для публикации данных в mysql.

 **In settings.php i have this short JS code:**

 $("form#submit").submit(function() {
    var fname     = $('#fname').attr('value');
    var lname     = $('#lname').attr('value'); 
    $.ajax({
        type: "POST",
        url: "settings.php",
        data: "fname="+ fname +"& lname="+ lname,
        success: function(){
            $('form#submit').hide();
            $('div.success').fadeIn();
        }
    });
return false;
});


**And this short php:**


 if (isset($_POST['fname'])){
        $fname        = htmlspecialchars(trim($_POST['fname']));
           DO SOMETHING....
 }

Это код, из которого происходит FNAME: (после нажатия кнопки ADD image, затем отправил значение fname ..)

echo "......
      <form id='submit$i' method='post'><input type='hidden' name='fname' id='fname' class='text' value='$fm_linkaz'></div><input name='add'type='image' id='add' value='$fm_linkaz' src='s.png'/></form>..........";

Это хорошо работает. Но мне нужен элемент SELECT, поэтому я изменил код на:

 ......

   echo "<select name=dropdown_list id='**ONAME**'><option value''>test</option>";
   for($i=0; $i < count($myarray); $i++){
   echo "<option value='$myarray[$i]'>$myarray[$i]</option>";}echo "</select>";

   ......</form>";

Это хорошо работает, но я не знаю, как я могу изменить код JS, чтобы опубликовать выбранное значение тоже.
Спасибо за вашу помощь.

Ответы [ 3 ]

1 голос
/ 11 августа 2009

Чтобы получить значение, используйте

$('select[name=dropdown_list]').val();

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

$('select#**ONAME**').val();

В любом случае .val() - это то, что вы ищете. Я также предлагаю использовать val() вместо attr('value').

1 голос
/ 11 августа 2009

Прежде всего код javascript нуждается в нескольких обновлениях:

$('#fname').val() лучше, чем $('#fname').attr('value') - .val() также будет работать с селектами / флажками - где .attr('value') не будет надежным.

Второе: параметр данных для вашего вызова $ .ajax () может принимать объект json (который он преобразует в строку формы)

$.ajax({
  type: "POST",
  url: "settings.php",
  data: {
    'fname': $('#fname').val(),
    'lname': $('#lname').val(),
    'oname': $('#oname').val()
  },
  success: function(){
    $('form#submit').hide();
    $('div.success').fadeIn();
  }
});

Существует плагин , который делает это намного проще:

$("form").ajaxForm({
   success: function(){
     $('form#submit').hide();
     $('div.success').fadeIn();
   }
});

ОБНОВЛЕНИЕ:

Также - элемент <select> был назван «dropdown_list» - возможно, вы хотели, чтобы он отправлял данные как «oname». Элементы формы используют свойство «name» для отправки, свойство id только облегчает кодирование селекторов css / js.

1 голос
/ 11 августа 2009

Чтобы получить выбранное значение для использования

jQuery('#**ONAME**').val();

Хотя я не уверен, является ли **ONAME** действительным идентификатором, попробуйте удалить **

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...