使用循环HTML表单的Ajax回发 - 同一页重新加载

时间:2014-06-28 21:32:47

标签: php jquery html ajax forms

我一直在为WordPress网站制作这个多部分表单,同时包含3个表单,这些表单在一个页面上加载。首先显示表单1,同时隐藏表单2和表单3。我在这里做的是,每当提交表单时,都会隐藏字段更新表单的值。我正在使用if else语句来比较值来加载特定的表单。所以,它从Nil开始,然后是1然后是2然后是3.所以,这就是我称之为循环形式的原因。对不起,如果我是直言不讳。

这是我的代码:

{
    global $wpdb;

    $this_page    =   $_SERVER['REQUEST_URI'];

    $page     =   $_POST['page'];

    if ( $page == NULL ) {

        echo '<form method="post" action="' . $this_page .'">

            //Form Fields

            <input type="hidden" value="1" name="page" />

            <input type="submit" />

        </form>';

    }//End Page 1 of Form

    //  Start Page 2 of Form

    elseif ( $page == 1 ) {

        //  Grab the POST data that the user provided and insert it into a custom database table

        // Show Form 2 after processing data from Form 1

        echo '<form method="post" action="' . $this_page .'">

            <input type="hidden" value="' . $form_id . '" name="form_id" />//Form id - Row ID from Database

            <input type="submit" />

        </form>';

    } //End Page 2 of Form

    // Start Page 3 of Form

    elseif( $page == 2 ) {

        //Grab post data from Form 2 and append it to the same database table. (Check against Form ID to find the same row)

        //Show Form 3 after processing form 2

        echo '<form method="post" action="' . $this_page .'"> 

            //Form 3 Fields

            <input type="hidden" value="3" name="page" />

            <input type="hidden" value="' . $form_id . '" name="form_id" />

            <input type="submit" />

        </form>';

    }

    // Start Page 4 of Form

    if ( $page == 3 ) {

        //Process Form 3

        //Show Thanks Message

        echo "<h3>Thanks so much!</h3>";

    }// End Page 4 of Form

};

上面的代码没有任何问题,完全按照我的意愿行事。

我遇到的问题是,它重新加载整个页面来处理当前表单并加载表单的下一部分。我想在不重新加载整个页面的情况下这样做。

在外行人看来,我有两种方法:

  1. 使用Ajax / Jquery
  2. 使用iframe重新加载包含该表单的部分(Div)。
  3. 在花了很多时间做研究之后,我发现了实施方法1的一些细节。

    这是我发现的:

    $.ajax({
        url: 'Link to the Same File.php',
        type: 'POST',
        data: formData,
        dataType: 'html',
        data: content
    });
    

    但我绝对知道这不完整。我仍然试图实现这一点,但正如预期的那样,它没有成功。

    我只想重新加载包含表单的页面的特定部分或使用ajax提交表单,并想知道是否可以这样做。请告诉我。

    期待您的回复。

    谢谢。

1 个答案:

答案 0 :(得分:0)

与WordPress的Ajax略有不同,这个链接可能会帮助你。

http://wptheming.com/2013/07/simple-ajax-example/

将此示例中的PHP部分放入主题的functions.php