通过参数,PHP,JAVASCRIPT,AJAX传递其中一个变量时,Ajax函数无法正常工作

时间:2015-06-16 20:24:52

标签: javascript php jquery ajax

我正在尝试编写一个函数来从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\")'>";

?>

^ ---此版本不起作用。

2 个答案:

答案 0 :(得分:1)

您在此处省略了双引号和连接:

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

答案 1 :(得分:1)

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