我正在尝试编写一个函数来从select语句中获取值,并将值回显到屏幕。当我在ajax函数中放入精确的选择名称时,它可以正常工作,但当我尝试通过参数传递选择名称时它停止工作。我知道它是通过参数成功传递的,我知道这是正确的选择名称,通过在测试时将其警告到函数内的屏幕。所以我认为实际问题可能出在这一行:
data: { select: $('select[name=theName]').val()},
但我不确定它有什么问题。我在下面有两个版本的代码。第一个版本有效,第二个版本没有。第一个版本在参数内部具有精确的选择名称,第二个版本通过名为“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\")'>";
?>
^ ---这个版本有效。
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\")'>";
?>
^ ---此版本不起作用。
答案 0 :(得分:1)
您在此处省略了双引号和连接:
data: { select: $('select[name="'+theName+'"]').val()},
答案 1 :(得分:1)
data: { select: $('select[name=' + theName + ']').val()},