提交表单并刷新产品div而不刷新页面

时间:2015-11-03 08:31:16

标签: php jquery forms refresh

我在index.php上有一个表单

<div id="right-div">
 <form name="m_srch" id="m_srch" action="'.tep_href_link(FILENAME_DEFAULT).'" method="get" > 
    ..........
 </form>
</div>

使用

进行处理

转/形式/ form.php的 它使用

包含在顶部的index.php中
require('ext/form/form.php');

转/形式/ form.js

在form.php的末尾包含了js文件

<script type="text/javascript" src="ext/form/jquery-1.10.2.js"></script>
<script type="text/javascript" src="ext/form/jquery-ui.js"></script> 
<script type="text/javascript" src="ext/form/form.js"></script>

该表单的工作方式是,当单击复选框时---它会刷新整个页面以列出已过滤的产品。

我希望只有产品div刷新而不是整个页面。 产品在下面div

<div id="left-div">......</div>

请帮助让这项工作得到深深的赏识.....

1 个答案:

答案 0 :(得分:1)

您需要在提交表单时向服务器发出AJAX请求,然后将处理后的数据发送回JavaScript(例如,使用JSON)。因此,例如,如果您的按钮具有ID“#button”,并且您尝试使用名为“#username”的输入框执行某些操作:

$(document).ready(function(){ // Initialize when document is ready
    $("#button").click(function(){ // Button is clicked
        var username = $("#username").val();
        $.ajax({ // do AJAX
            url: "form.php", // in form.php
            method: "POST", // with POST
            data: {username = username},    // in PHP, $_POST['username'] is the value of your username input box
            success: function(data) {
                // do something with the JSON
            }
        });
    });
});

在此示例中,成功的变量称为data,是您从服务器发送JSON的部分。

现在,你的PHP可能是这样的:

<?php
    $username = $_POST['username'];
    echo json_encode($username);
?>

这样,它将使用数据“username”进行请求,并且该请求的值为$(“#username”)。然后PHP将选择它,将其发送回AJAX请求,该请求将其作为JSON存储在变量数据中,您可以在成功函数中使用它。

祝你好运!