来自WordPress插件的表单提交

时间:2014-10-10 作者:MissCoder87

经验丰富的开发人员,但对wordpress开发还不熟悉-很快成为一名粉丝。

我正在制作我的第一个wordpress插件(客户的自定义联系表单,没有一个插件可以做我需要的jazz)。

我不知道如何提交表格和获取数据。以下是我目前掌握的情况:

function cafesignup_function() {

    $x = parse_url($_SERVER[\'HTTP_REFERER\']);
    $pageRef = basename($x[\'path\']);

    if(isset($_POST[\'submit\']))
    {
        $name = $_POST[\'companyName\'];
        $demolp_output = $name;

    } else {


    $greeetingText = "<h1>" . getTitle($pageRef) . " Quote Form</h1>";

    $demolp_output = "<div class=\'mtool ccupform\'></div> <div class=\'greeting-text\'><p>" . $greeetingText . "</p></div><div class=\'maintext\'> <div class=\'errortext\'> </div><small>Fields with a * are required fields.</small>";
    $demolp_output .= "<form name=\'quoteForm\' id=\'quoteForm\' method=\'post\' action=\'/request-a-quote\' >";
    $demolp_output .= "<p>Contact Name*<br />";
    $demolp_output .= "<input type=\'text\' class=\'validate bjp-contact\' name=\'companyName\' id=\'cafeCompanyName\' value=\'\' size=\'40\' class=\'\'></p>";

    $demolp_output .= "<p>Business name if Applicable<br />";
    $demolp_output .= "<input type=\'text\' class=\'validate bjp-contact\' id=\'cafeFirstname\' value=\'\' size=\'40\' class=\'\'></p>";

    $demolp_output .= "<p>Telephone including STD*<br />";
    $demolp_output .= "<input type=\'text\' class=\'validate bjp-contact\' id=\'cafeSurname\' value=\'\' size=\'40\' class=\'\'></p>";

    $demolp_output .= "<p>Email Address*<br />";
    $demolp_output .= "<input type=\'text\' class=\'validate vemail bjp-contact\' id=\'cafeEmailAddress\' value=\'\' size=\'40\' class=\'\'></p>";

    $demolp_output .= "<p> <div class=\'pull-right\'><span onclick=\'clear();\' id=\'cafeAdd2\' class=\'btnN\'>Clear</span> &NonBreakingSpace;<span onclick=\'addUser();\' id=\'cafeAdd2\' class=\'btnY\'>Submit</span></center></p>";

    $demolp_output .= "</div>";

    $demolp_output .= "</form>";

    }

    return $demolp_output;
}
当我提交时(使用jquery进行提交,如下所示),它会触发提交,但它会再次显示fro(我也不知道在表单上放置什么作为操作,以便在其他地方重用插件)。

function addUser(){
    var emailvalidates = true;
jQuery( ".validate" ).each(function() {
    if(jQuery(this).val() == ""){
        validates = false;
        alert("missing fields");
    } else {
        $(\'#quoteForm\').submit();
    }
});

}

2 个回复
SO网友:LeMike

var_dump() 你的$_POST, 永远不会有[\'submit\'].您没有以下内容:

<input name="submit" type="submit" />
这是基本HTML;)

阅读有关MVC的更多信息,并将HTML代码放入另一个文件中。把它们串起来是你将来不会喜欢的事情!总有一天它会变得无法阅读和维护。

SO网友:taido

我认为本文可以帮助您在Wordpress中进行页面设置:

http://code.tutsplus.com/tutorials/create-a-settings-page-for-your-wordpress-theme--wp-20091

希望这有帮助。

结束

相关推荐

WP_LOCALIZE_SCRIPT与WordPress中的mce_外部_plugins

我不确定这是否可能。我可以使用wp_localize_script 具有mce_external_plugins 滤器我想向tinymce插件脚本发送一个变量。例如:add_filter( \"mce_external_plugins\", array( &$this, \'add_test_plugin\' ) ); public function add_test_plugin( $plugin_array ){ global $pagenow;&#