jQuery - 一种形式的2个不同提交按钮的2个不同功能

时间:2011-05-17 06:14:05

标签: jquery

我已经搜索了其他建议我想做什么,但似乎没有我想要的东西。

基本上我有一个带有2个提交按钮的表单,我想要一个将数据保存到数据库,我已经完成并且工作正常...第二个提交按钮(预览)我需要在新窗口中打开,获取所有表单数据并将其显示在表单上,​​同时保留上一页原样...如果这是有意义的。

我想我不能用PHP做到这一点,以获得基本上重新加载页面所需的帖子数据......我认为jQuery可能有一种方法。

任何帮助?

4 个答案:

答案 0 :(得分:2)

除非你已经在应用程序的其他地方使用它,否则我不会使用jQuery。

HTML标记:

<form method="post" action="foo.php" id="myform">
    <button type="submit" name="save_data">Save Data</button>
    <button type="submit" name="preview_data" onclick="document.getElementById('myform').target = '_blank'; return true;">Preview Data</button>
</form>

PHP:

<?php
if (isset($_POST['preview_data'])) {
    // Clicked Preview
} else if (isset($_POST['save_data'])) {
    // Clicked Save
} else {
    // How'd you get here? Probably not POST
}
?>

答案 1 :(得分:0)

听起来你需要使用脚本作为第二个按钮。

看起来像这样(使用jQuery):

<button type="button" id="preview_button">preview</button>
<script type="text/javascript">
    $(document).ready(function(){
      $('#preview_button').click(function(){
        var pUrl = 'http://server/preview.php?' + $('#form_id').serialize();
        window.open(pUrl);
      });
    });
</script>

答案 2 :(得分:0)

使用jQuery可以实现的。您需要做的就是编写两个onClick函数(每个按钮)。在第一个函数中,只需调用$(“form_name”)。submit(),您的数据将被提交。 在第二个函数中打开对话框(您可以使用此http://jqueryui.com/demos/dialog/),从表单中获取所有数据并以您需要的方式将其放入对话框中)。 要从表单中获取所有数据,您可以使用另一个jQuery函数$(“form_name”)。serialize()。看看这里:http://api.jquery.com/serialize/

答案 3 :(得分:0)

听起来您的预览按钮不是提交按钮,但应该是您为其设置新点击功能的常规按钮。

在该功能中,您可以使用表单中的字段打开新窗口。

如果您希望新窗口到服务器进行往返,您可以使用John建议的ajax调用,或者可能在单击第二个按钮时在隐藏字段中设置一个标志,并且您的服务器端脚本可以检查用于确定是应保存数据还是生成预览页面的标志。