通过参数PHP、JAVASCRIPT、Ajax传递其中一个变量时,Ajax函数不起作用

通过参数PHP、JAVASCRIPT、Ajax传递其中一个变量时,Ajax函数不起作用,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我试图编写一个函数,从select语句中获取值,并将该值回显到屏幕上。当我将确切的select名称放入ajax函数中时,它可以工作,但当我试图通过参数传递select名称时,它停止工作。我知道它成功地通过了参数,并且我知道它是正确的选择名称,当我测试它时,它会在函数内部的屏幕上发出警报。所以我认为实际的问题可能在这一行: data: { select: $('select[name=theName]').val()}, 但我不确定它到底出了什么问题。下面是我的代码的两个版本。第一个版本有效,第

我试图编写一个函数,从select语句中获取值,并将该值回显到屏幕上。当我将确切的select名称放入ajax函数中时,它可以工作,但当我试图通过参数传递select名称时,它停止工作。我知道它成功地通过了参数,并且我知道它是正确的选择名称,当我测试它时,它会在函数内部的屏幕上发出警报。所以我认为实际的问题可能在这一行:

data: { select: $('select[name=theName]').val()},
但我不确定它到底出了什么问题。下面是我的代码的两个版本。第一个版本有效,第二个版本无效。第一个版本在参数中具有确切的select名称,第二个版本通过名为“theName”的参数传递。请看一看:

ajax.php


函数ajax(url、名称、id){
警报(名称)
$.ajax({
类型:“POST”,
url:url,
数据:{select:$('select[name=“select1”]')。val(),
错误:函数(xhr,状态,错误){alert(error);},
成功:功能(数据){
document.getElementById(id).innerHTML=数据;
}
});
}
测试1


此处省略了双引号和串联:

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

回答得好。如果我也想通过打字怎么办?我希望通过名为type的参数传递类型,而不是在内部使用select。我试过这样做,但没有成功:数据:{select:$('type[name=“'+theName+''']')).val(),没有像type这样的输入。Name只是select元素的一个属性。阅读css选择器。不,我的意思是喜欢这种类型。如您所知,选择、输入、单选按钮、复选框。那些类型。哦,我明白了:数据:{select:$(type+'[name=“'+theName+''“]')).val()},回答得好。如果我也想通过打字怎么办?我希望通过名为type的参数传递类型,而不是在内部使用select。我试过这样做,但没有成功:数据:{select:$('type[name='+theName+']').val(),
<?php

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

?>
<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>
<?php

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

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