Jquery确认并将POST变量传递给外部加载的表单

时间:2017-11-10 16:38:09

标签: php jquery ajax

有没有办法将POST变量发送到外部PHP表单? 在这个例子中,我想通过POST(不是GET)传递XXX和YYY。 我正在使用这个插件:https://github.com/craftpip/jquery-confirm

<a id="btn" data-value1="XXX" data-value2="YYY">CLICK ME</a>

<script>
  $('#btn').on('click', function (e) {
   e.preventDefault();
   $.confirm({
   title: 'Title',
   content: 'url:form.php',
   buttons: {
      ......
   }       
});
});

form.php的:

<?php
 $value1 = $_POST['value1'];
 $value2 = $_POST['value2'];
?>
<div class="form-group">
    <label class="control-label">Default values from parent page:</label>
    <input type="text" id="value1" class="form-control" value="<?php echo $value1; ?>">
    <input type="text" id="value2" class="form-control" value="<?php echo $value2; ?>">
</div>

更新:尝试了这一点,但没有成功。表单不以模态加载:

content: function() { 
        var self = this;
            return $.ajax({
              url: 'form.php',
              dataType: 'json',
              async: false,
              method: 'post',
              data: { 'value1': 'XXX', 'value2': 'YYY' }
            }).done(function (response) {
                self.setContent(response);
            });
}

1 个答案:

答案 0 :(得分:0)

您只需指定

即可
dataType: 'html'

而不是

dataType: 'json'

这是因为form.php返回HTML字符串,而不是JSON对象。您可能在控制台中出现错误,抱怨jQuery无法将响应解析为JSON,因为它不是JSON。如果你告诉jQuery改为期望HTML,它会将响应作为字符串传递给你,而你可以直接在屏幕上显示,而不是试图把它变成一个对象。