我一直在为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({
url: 'Link to the Same File.php',
type: 'POST',
data: formData,
dataType: 'html',
data: content
});
但我绝对知道这不完整。我仍然试图实现这一点,但正如预期的那样,它没有成功。
我只想重新加载包含表单的页面的特定部分或使用ajax提交表单,并想知道是否可以这样做。请告诉我。
期待您的回复。
谢谢。
答案 0 :(得分:0)
http://wptheming.com/2013/07/simple-ajax-example/
将此示例中的PHP
部分放入主题的functions.php
。