Функция Ajax не работает при передаче одной из переменных через параметр, PHP, JAVASCRIPT, AJAX

0 frosty [2015-06-16 23:24:00]

Я пытаюсь написать функцию, чтобы получить значение из оператора select, и эхо значение на экране. Он работает, когда я помещаю точное имя select внутри функции ajax, но он перестает работать, когда я пытаюсь передать имя выбора через параметры. Я знаю, что он прошел через параметр успешно, и я знаю, что это было правильное имя выбора, предупредив его на экране внутри функции, когда я его тестировал. Поэтому я думаю, что фактическая проблема может быть в этой строке:

data: { select: $('select[name=theName]').val()},

Но я не уверен, что с ним не так. У меня есть 2 версии моих кодов ниже. Первая версия работает, а вторая версия - нет. Первая версия имеет точное имя выбора внутри параметра, а вторая версия передается через параметр "theName". Взгляни, пожалуйста:

ajax.php

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<script type = "text/javascript"> 

function ajax(url,theName,id) {
alert(theName)
      $.ajax({
           type: "POST",
           url: url,
           data: { select: $('select[name="select1"]').val()},
           error: function(xhr,status,error){alert(error);},
           success:function(data) {
             document.getElementById( id ).innerHTML = data;
           }

      });

}

</script>

test1

<?php

echo "<select name = 'select1' onchange = 'ajax(\"test2.php\",\"select1\",\"output\")'>";

?>

^ ---This версия работает.

ajax.php

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<script type = "text/javascript"> 

function ajax(url,theName,id) {
alert(theName)
      $.ajax({
           type: "POST",
           url: url,
           data: { select: $('select[name=theName]').val()},
           error: function(xhr,status,error){alert(error);},
           success:function(data) {
             document.getElementById( id ).innerHTML = data;
           }

      });

}

</script>

test1

<?php

echo "<select name = 'select1' onchange = 'ajax(\"test2.php\",\"select1\",\"output\")'>";

?>

^ ---This версия не работает.

javascript jquery ajax php


2 ответа


1 Решение n-dru [2015-06-16 23:32:00]

Вы опустили двойные кавычки и конкатенацию здесь:

data: { select: $('select[name="'+theName+'"]').val()},

1 w1ldzer0 [2015-06-16 23:33:00]

data: { select: $('select[name=' + theName + ']').val()},