将wp-Gravity表单输入到自定义sql表

时间:2017-10-25 21:00:55

标签: php mysql wordpress gravityforms

Backgound:我有一个wordpress安装,其中包含由cpanel管理的基本myslq数据库结构。我已经实现了Gravity Forms插件来生成一种联系我们表单。如果客户对产品有疑问/投诉,他们会填写表格并提交。然后,这将进入我在wp数据库中创建的自定义表(wp-contacts)。我使用ODBC连接器将表中的数据与Filemaker连接。然后,我们的客户服务团队可以在我们开发的自定义文件制作器应用程序中查看数据,他们可以回答问题。

问题:我的PHP脚本存在问题,应该将重力从客户的数据输入发送到我创建的自定义sql表。当我测试from并输入示例数据并单击submit时,我得到一个此页面无法显示错误。此外,我创建的自定义表中没有数据。还有验证码的问题。我已经在重力形式中实现了验证码,所以如果验证验证码,我会假设我需要某种字段设置为1或0?实现这个的最佳方法是什么?这是我的剧本:

add_action("gform_after_submission_1", "input_fields", 10, 2);
function input_fields($entry, $form)
{
    global $rhodesba_rhodes;

        $entry["12"] = '$fname';
        $entry["14"] = '$lname';
        $entry["4"] = '$email';
        $entry["5"] = '$address1';
        $entry["15"] = '$address2';
        $entry["16"] = '$city';
        $entry["18"] = '$state';
        $entry["17"] = '$zip';
        $entry["7"] = '$bbd';
        $entry["6"] = '$upc';
        $entry["10"] = '$subject';
        $entry["2"] = '$question';

    $SQL = "INSERT INTO wp_contacts (id, name, last_name, state, city, address, address_2, bbd, subscribe, upc, email, subject, comments, phone, user_ip, answer, answered_by, zipcode, category_id, active, contact_captcha, answered_date, dept, computer_name, created) VALUES ('', '$fname', '$lname', '$state', '$city', '$address1', '$address2', '$bbd', '', '$upc', '$email', '$subject', '$question', '', '', '', '', '$zip', '', '', '', '', '', '', '')";
    $rhodesba_rhodes->query($SQL);
}

我的表格中有些字段没有通过重力形式联系我们表单填充。相反,我们的客户服务器团队在回答文件制作者应用程序中的问题(即答案,答案等)时会操纵这些字段,并由filemaker用于其他目的。对于这些领域,我使用了占位符'。我的ID字段设置为每个添加的记录自动递增 image of database structure

1 个答案:

答案 0 :(得分:0)

所以,经过一些研究,我发现了这一点。我发布解决方案,以防其他人有同样的问题。这是我更新的代码:

add_action("gform_after_submission_1", "input_fields", 10, 2);
function input_fields($entry, $form)
    {
        $password = "password";
        $username = "username";
        $servername = "localhost";
        $dbname = "db";
        $fname = $entry["12.3"];
        $lname = $entry["14.6"];
        $email = $entry["4"];
        $address1 = $entry["5.1"];
        $address2 = $entry["15.2"];
        $city = $entry["16.3"];
        $state = $entry["18.4"];
        $zip = $entry["17.5"];
        $bbd = $entry["7"];
        $upc = $entry["6"];
        $subject = $entry["10"];
        $question = $entry["2"];

$con=mysqli_connect($servername, $username, $password, $dbname);
mysqli_query($con,"INSERT INTO wp_contacts (id, name, last_name, state, city, address, address_2, bbd, subscribe, upc, email, subject, comments, phone, user_ip, answer, answered_by, zipcode, category_id, active, contact_captcha, answered_date, dept, computer_name, created) VALUES ('', '$fname', '$lname', '$state', '$city', '$address1', '$address2', '$bbd', '', '$upc', '$email', '$subject', '$question', '', '', '', '', '$zip', '', '', '', '', '', '', '')");
    }

我的第一个问题是我以相反的方式分配了变量声明。

$entry["12"] = $fname //WRONG
$fname = $entry["12"] //RIGHT

一旦我处理了这个,我开始在mysql表中填充数据,但是,只填充了某些字段。经过进一步调查后,我注意到我的id被用来访问$条目是不正确的。为了获得正确的id,我右键单击浏览器中的每个字段并检查元素。这向我展示了这样的名称属性:name =" input_1.3"。 "输入后的数字_" prefix是用于$ entry的id。我改变了我错误的身份,现在数据发布完美。

我还用它来连接数据库:

mysqli_connect

希望如果有人有类似问题,这会有所帮助。