Функция 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()},