将变量从onclick传递到ajax

时间:2016-02-07 12:17:32

标签: javascript php jquery ajax

我正在尝试将变量(区域)从onclick元素传递给ajax函数。 我正在使用PHP,SQL和插件http://t4t5.github.io/sweetalert/

这是我在index.php

的头部的代码
   <script type"text/javascript">
  function save(){
      $.ajax({
          type: "POST",
          url: "addlandtovisited.php",
          data: {region: region},
          success: function(data) {
              alert("Ajax save executed!");
          }
      });
  }
</script>

<script>
  jQuery(document).ready(function () {
    jQuery('#vmap').vectorMap({
      map: 'world_en',
      backgroundColor: '#333333',
      color: '#ffffff',
      hoverOpacity: 0.7,
      selectedColor: '#666666',
      enableZoom: true,
      showTooltip: true,
      scaleColors: ['#C8EEFF', '#006491'],
      values: sample_data,
      normalizeFunction: 'polynomial',

      onRegionClick: function (element, code, region) {
        var boton = "button";
        swal({   
              title: ''+region,  
              showCancelButton: true, 
              showConfirmButton: false, 
              text: '<a href="" onclick="save(region)">test</a>',

              html: true 
        });

      }
    });
  });
</script>

addlandtovisited.php:

<?php
if(isset($_POST['region'])){ 
?>

当我将字符串设置为ajax函数并从save(region)中删除该区域时,它可以正常工作:

data: {region: "TEST"},

text: '<a href="" onclick="save()">test</a>',

1 个答案:

答案 0 :(得分:0)

this thread所示,sweetalert repo存在一些问题。例如,我无法使swal渲染html文本在正文中。切换到sweetalert2并应用线程提到的补丁可能是个好主意。

我建议您使用确认按钮,而不是在swal的正文中创建自己的链接。例如:

swal({
  title: '' + region,
  showCancelButton: true,
  showConfirmButton: true,
  confirmButtonText: "save",
  text: "anything",
  html: true

}, function() { // save button callback
  save(region);
});

不要忘记将region参数添加到save()方法:save(region)