如何将多个PHP变量传递给ajax函数onclick

时间:2016-10-26 20:57:21

标签: javascript jquery html

我正在尝试使用ajax将数据发送到控制器中的一个函数,但底部的错误(在图像中)不会让变量通过。

我正在使用codeigniter框架,这个ajax函数在我看来。

$(document).ready(function(){

function myButton(id1, id2, id3){
    $.ajax({
      method: "POST",
      url: "<?php echo base_url() ?>controller/function/"+id1+"/"+di2+"/"+id3,
      data: {
        id1:id1,
        id2:id2,
        id3:id3
      }
      dataType : 'text',
      success:function(data){
        location.reload();
    });
}
}

<div align="center">
  <a>
    <button onclick="myButton('<?php echo $id1; ?>', '<?php echo $id2; ?>', '<?php echo $id3; ?>')">
      <img  src="<?php echo base_url();?>images/button.png" >
    </button>
  </a>
</div>
  

未捕获的ReferenceError:myButton未定义(...)

enter image description here

3 个答案:

答案 0 :(得分:3)

在$(document).ready()

之外定义函数

目前,直到加载dom之后才会定义该函数,这意味着在设置按钮时没有定义。

这应该是这样的:

<script>
var myButton = function(id1, id2, id3){
                $.ajax({
                   method: "POST",
                  url: "<?php echo base_url(); ?>controller/function/"+id1+"/"+id2+"/"+id3,
                  data: {
                    id1:id1,
                    id2:id2,
                    id3:id3
                  },
                dataType : 'text',
                  success:function(data){
                    location.reload();
                }
            });
};

    $(document).ready(function(){
//This isn't really needed
});
</script>



<div align="center">
  <a>
    <button onclick="myButton('<?php echo $id1; ?>', '<?php echo $id2; ?>', '<?php echo $id3; ?>')">
      <img  src="<?php echo base_url();?>images/button.png" >
    </button>
  </a>
</div>

答案 1 :(得分:0)

您在内部var tween = TweenMax.fromTo("path", 1, { opacity: 0 }, { opacity: 1 }); var scene = new ScrollMagic.Scene({triggerElement: "#mySvg" }) .setTween(tween) .addIndicators({name: "tween css class"}) // add indicators (requires plugin) .addTo(controller); 函数中声明myButton。您需要在全局范围内声明它。

document.ready

答案 2 :(得分:0)

答案可能是一个字符;,所以使用<?php echo base_url(); ?>这将打印无效的Javascript,可能更多!!!

$(document).ready(function(){

function myButton(id1, id2, id3){
    $.ajax({
      method: "POST",
      url: "<?php echo base_url(); ?>controller/function/"+id1+"/"+di2+"/"+id3,
      data: {
        id1:id1,
        id2:id2,
        id3:id3
      }
      dataType : 'text',
      success:function(data){
        location.reload();
    });
}
}

<div align="center">
  <a>
    <button onclick="myButton('<?php echo $id1; ?>', '<?php echo $id2; ?>', '<?php echo $id3; ?>')">
      <img  src="<?php echo base_url();?>images/button.png" >
    </button>
  </a>
</div>