如何以及在哪里通过Wordpress从HTML表单发送GET请求?

时间:2019-07-16 13:23:53

标签: php html wordpress

我在Wordpress中制作页面,我需要能够将HTML表单提交的数据用作变量。在我的情况下,表单是带有提交按钮的两个简单的下拉选择表单。我不确定要放置什么作为表单的action属性以及如何访问它。我想使用GET方法来执行此操作,但是我不确定如何在Wordpress中使用PHP或将PHP页面/文件存储在何处。任何帮助将不胜感激。

这是我页面的HTML代码,方括号中的项目来自插件。 kids.php是我在计算机上本地运行的文件,与我的Wordpress网站无关,并且在此处没有任何作用。

<form id="form" action="kids.php" method="get">
[one_half]

    <h3>Select a Country</h3>
        <div class="dropdown">      
            <select id="dropdownl" name=dropdownl>
                <option disabled="true">Country</option>
                <option disabled="true">North America</option>
                                <option value="62292">Canada</option>
                <option value="72808">Mexico</option>
                <option value="144586">Puerto Rico</option>
                <option value="163668">United States</option>
                                <option disabled="true">South America</option>
                <option value="63839">Argentina</option>
                <option value="67922">Brazil</option>
                <option value="78702">Colombia</option>
                <option value="60670">Peru</option>
                                <option disabled="true">Oceania</option>
                <option value="32137">Australia & New Zealand</option>
                                <option disabled="true">Africa</option>
                <option value="63210">Egypt</option>
                <option value="78700">South Africa</option>
                                <option disabled="true">Asia</option>
                <option value="66137">China</option>
                <option value="49932">India</option>
                <option value="40308">Israel</option>
                <option value="78709">Japan</option>
                <option value="223252">Philippines</option>
                <option value="60438">Republic of Korea</option>
                <option value="69605">Singapore</option>
                <option value="70391">Taiwan</option>
                <option value="71971">Thailand</option>
                                <option disabled="true">Europe</option>
                <option value="32142">Austria</option>
                <option value="32146">Belgium</option>
                <option value="78707">Bulgaria</option>
                <option value="72763">Czech Republic</option>
                <option value="31277">Denmark</option>
                <option value="62393">Finland</option>
                <option value="31223">France</option>
                <option value="31026">Germany</option>
                <option value="63208">Greece</option>
                <option value="63016">Hungary</option>
                <option value="183519">Ireland</option>
                <option value="122492">Italy</option>
                <option value="142792">Lithuania</option>
                <option value="162411">Netherlands</option>
                <option value="67164">Norway</option>
                <option value="56320">Poland</option>
                <option value="62344">Portugal</option>
                <option value="67210">Romania</option>
                <option value="68895">Russian Federation</option>
                <option value="143380">Serbia</option>
                <option value="78705">Slovakia</option>
                <option value="25372">Spain</option>
                <option value="25520">Sweden</option>
                <option value="25408">Switzerland</option>
                <option value="67375">Turkey</option>
                <option value="63212">Ukraine</option>
                <option value="25482">United Kingdom</option>
            </select>   
        </div> 

[/one_half]



[one_half_last]

<h3>Select a Country</h3>
    <div class="dropdown">

        <select id="dropdownr" name=dropdownr>
                <option disabled="true">Country</option>
                <option disabled="true">North America</option>
                                <option value="62292">Canada</option>
                <option value="72808">Mexico</option>
                <option value="144586">Puerto Rico</option>
                <option value="163668">United States</option>
                                <option disabled="true">South America</option>
                <option value="63839">Argentina</option>
                <option value="67922">Brazil</option>
                <option value="78702">Colombia</option>
                <option value="60670">Peru</option>
                                <option disabled="true">Oceania</option>
                <option value="32137">Australia & New Zealand</option>
                                <option disabled="true">Africa</option>
                <option value="63210">Egypt</option>
                <option value="78700">South Africa</option>
                                <option disabled="true">Asia</option>
                <option value="66137">China</option>
                <option value="49932">India</option>
                <option value="40308">Israel</option>
                <option value="78709">Japan</option>
                <option value="223252">Philippines</option>
                <option value="60438">Republic of Korea</option>
                <option value="69605">Singapore</option>
                <option value="70391">Taiwan</option>
                <option value="71971">Thailand</option>
                                <option disabled="true">Europe</option>
                <option value="32142">Austria</option>
                <option value="32146">Belgium</option>
                <option value="78707">Bulgaria</option>
                <option value="72763">Czech Republic</option>
                <option value="31277">Denmark</option>
                <option value="62393">Finland</option>
                <option value="31223">France</option>
                <option value="31026">Germany</option>
                <option value="63208">Greece</option>
                <option value="63016">Hungary</option>
                <option value="183519">Ireland</option>
                <option value="122492">Italy</option>
                <option value="142792">Lithuania</option>
                <option value="162411">Netherlands</option>
                <option value="67164">Norway</option>
                <option value="56320">Poland</option>
                <option value="62344">Portugal</option>
                <option value="67210">Romania</option>
                <option value="68895">Russian Federation</option>
                <option value="143380">Serbia</option>
                <option value="78705">Slovakia</option>
                <option value="25372">Spain</option>
                <option value="25520">Sweden</option>
                <option value="25408">Switzerland</option>
                <option value="67375">Turkey</option>
                <option value="63212">Ukraine</option>
                <option value="25482">United Kingdom</option>
        </select> 

    </div> 

[/one_half_last]
<input type="submit" value="Submit">
</form>

2 个答案:

答案 0 :(得分:0)

PHP页面的路径必须是操作。如果包含表单的页面与将执行PHP脚本的页面相同,那么您将使用该路径作为操作。 因此,假设您的应用程序在example.com/subdir/mypage.php上运行,那么您的操作可能看起来像这样:action="/subdir/mypage.php" 但是,如果您的PHP脚本在其他位置运行,则您的操作必须指向该位置。

要访问从表单提交的参数,您的PHP脚本将需要以下内容:

<?php
$myvar=$_SERVER['QUERY_STRING'];
parse_str($myvar,$output);
$dropdownl_val=$output['dropdownl'];
$dropdownr_val=$output['dropdownr'];
?>

尽管如此,我还是建议您研究Wordpress插件的开发,因为将任何脚本添加到模板意味着它将在每个请求上执行,这不是一个好主意,除非它正是您要实现的目标,或者除非该页面是与您的Wordpress应用程序独立运行。

答案 1 :(得分:0)

要在Wordpress中集成自定义表单,您必须执行以下操作:

通过在主题中创建一个新的php文件来创建custom page template,并在页面顶部添加以下约定:

<?php /* Template Name: Example name */ ?>

您可以将表单包括在此模板文件中,但是请确保将action属性保留为空。不要在表单的输入字段中使用通用名称,因为您很容易与WordPress的某些保留名称发生冲突。

<form id="form" action="" method="get">

您可以在此文件中或通过"init" action hook访问$ _GET变量。

确保从WordPress仪表板创建一个新页面,并在此页面上使用新创建的自定义模板。这样,您可以在前端访问表单。