Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用挂钩编辑重力形状?_Php_Wordpress_Twitter Bootstrap 3_Gravity Forms Plugin - Fatal编程技术网

Php 如何使用挂钩编辑重力形状?

Php 如何使用挂钩编辑重力形状?,php,wordpress,twitter-bootstrap-3,gravity-forms-plugin,Php,Wordpress,Twitter Bootstrap 3,Gravity Forms Plugin,我正在制作一个简单的电子邮件注册表单,希望删除gravity表单中的所有膨胀。我知道我无法摆脱一些javascript,但我希望能够在不使用ul的情况下使用表单,删除标题和描述,等等 下面是电子邮件注册的静态html版本的样子(我使用的是Bootstrap3): 如何使我的重力形态从: <div class="gf_browser_chrome gform_wrapper" id="gform_wrapper_2"><form method="post" enctype="m

我正在制作一个简单的电子邮件注册表单,希望删除gravity表单中的所有膨胀。我知道我无法摆脱一些javascript,但我希望能够在不使用ul的情况下使用表单,删除标题和描述,等等

下面是电子邮件注册的静态html版本的样子(我使用的是Bootstrap3):

如何使我的重力形态从:

<div class="gf_browser_chrome gform_wrapper" id="gform_wrapper_2"><form method="post" enctype="multipart/form-data" id="gform_2" action="/exrnawp/" class="form-horizontal">
                        <div class="gform_heading">
                            <span class="gform_description"></span>
                        </div>
                        <div class="gform_body">
                            <ul id="gform_fields_2" class="gform_fields top_label description_below"><li id="field_2_1" class="gfield               gfield_contains_required"><label class="gfield_label" for="input_2_1">Email<span class="gfield_required">*</span></label><div class="ginput_container"><input name="input_1" id="input_2_1" type="email" value="" class="medium" placeholder="Email Newsletter"></div></li>
                            </ul></div>
        <div class="gform_footer top_label"> <input type="submit" id="gform_submit_button_2" class="button gform_button" value="Get Updates!" onclick="if(window[&quot;gf_submitting_2&quot;]){return false;}  if( !jQuery(&quot;#gform_2&quot;)[0].checkValidity || jQuery(&quot;#gform_2&quot;)[0].checkValidity()){window[&quot;gf_submitting_2&quot;]=true;} ">
            <input type="hidden" class="gform_hidden" name="is_submit_2" value="1">
            <input type="hidden" class="gform_hidden" name="gform_submit" value="2">
            <input type="hidden" class="gform_hidden" name="gform_unique_id" value="">
            <input type="hidden" class="gform_hidden" name="state_2" value="WyJhOjA6e30iLCIxNTU1YWU5Yzg1OGIxMDQ3ZGY5ZGZlZGU2MzA1ODNlMSJd">
            <input type="hidden" class="gform_hidden" name="gform_target_page_number_2" id="gform_target_page_number_2" value="0">
            <input type="hidden" class="gform_hidden" name="gform_source_page_number_2" id="gform_source_page_number_2" value="1">
            <input type="hidden" name="gform_field_values" value="">

        </div>
                </form>
                </div>

电子邮件*

对此:

<form class="form-inline" role="form">
  <div class="form-group">
    <input type="email" class="form-control" id="exampleInputEmail2" placeholder="Email Newsletter">
  </div>
  <button type="submit" class="btn btn-warning pull-right"><strong>SIGN UP</strong>    </button>
</form>

注册

删除标题和描述HTML应该非常简单,只要在[gravityform]快捷码上为“标题”和“描述”属性传递“false”,或者在gravity_form()函数上传递它们的等效属性(如果您手动调用它)

如果您打算让Gravity表单处理表单的提交,您需要保留大部分(如果不是全部的话)隐藏字段,这些字段用于让GF识别实际提交的Gravity表单(而不是其他表单和任何对您站点的POST请求)


如果您感到很兴奋,可以通过“gform\u get\u form\u filter”钩子完全重写表单的整个输出。它没有文档化,但它将整个表单标记作为字符串和$form对象传递。

我最终使用了jquery,这很好,但不是最有效的方法

<script>
$(document).ready(function(){
    $( ".gform_body" ).replaceWith( "<div class='form-group'><input name='input_1' id='input_2_1' type='email' value='' class='medium form-control' placeholder='Email Newsletter'></div>" );
    $('#gform_submit_button_2').addClass('btn btn-warning pull-right');
});
</script>

$(文档).ready(函数(){
$(“.gform_body”)。替换为(“”);
$('gform_submit_button_2').addClass('btn btn warning pull right');
});

我知道这是一篇非常古老的帖子,但由于关于这件事的文档很差,人们可能会在这里寻找答案(就像我一样),我想我会分享我最终采用的方法

因此,我所做的是使用PHP的类从.gform_主体和.gform_页脚容器以及ul元素中清理表单。然后,事情变得更加简单,因为您可以使用Gravity表单的本机过滤器,并修改字段


要获得更详细的描述,这里是我的教程,介绍如何使用

谢谢你的回复。我需要处理gform\u get\u form\u过滤器。你曾经用这种方式成功地编写过自己的GF吗?我没有用它来创建自定义表单标记。通常,当某些条件不满足时,我会使用它来隐藏表单(例如:)。据我所知,您不能以这种方式编辑HTML。确实,如果在gform_pre_render调用中添加第二个参数,则表单将以HTML形式显示,但我找不到在将表单发送回浏览器之前对其进行实际编辑的方法。gform_pre_render允许您在呈现表单对象之前对其进行修改。gform_get_form_filter允许您在表单标记生成后修改表单标记。我很好奇您为什么要使用jQuery删除HTML输出?我能想到的删除HTML的唯一原因是要下载的内容更少。但是如果您使用jQuery,那么HTML将被下载,然后从DOM中删除,因此实际上还有更多内容需要下载和处理:您添加的jQuery。