将自定义表单数据保存到数据库

时间:2018-07-31 作者:Abel Sanz

我是WordPress的新手。我已经在WordPress中创建了一个自定义表单,我需要知道在哪里放置WPDB PHP代码来保存表单数据。

我试着直接把它放在我的页面上,但没有成功。

我查过的所有研究都说不要在函数文件中输入它,那么我应该把它放在哪里呢?

以下是我在页面中输入的代码:

Form Code

<form id="myForm" name="myform">
    <select id="brandSel" size="1">
        <option selected="selected" value="">-- Select Brand --</option>
        <option>Abba</option>
        <option>AG Hair</option>
    </select>

    <input type="submit" value="submit" />

</form>

PHP Code

<?php
    global $wpdb; 
    $inputValue = $_POST[\'newValue\']; 
    $wpdb->insert( 
        \'catalog\', 
        array( 
            \'brandSel\' => $inputValue 
        ), 
        array( \'%s\' // if the field type is string ) 
    );
?>

1 个回复
SO网友:Krzysiek Dróżdż

好的,这里是你应该如何以这种正确的方式。。。

在模板文件中,您可以填写表单:

<form id="myForm" name="myform" action="<?php echo esc_attr( admin_url(\'admin-post.php\') ); ?>" method="POST">
    <input type="hidden" name="action" value="save_my_custom_form" />
    <select id="brandSel" size="1">
        <option selected="selected" value="">-- Select Brand --</option>
        <option>Abba</option>
        <option>AG Hair</option>
    </select>

    <input type="submit" value="submit" />
</form>
和在函数中。必须添加的php文件(或插件中的文件)admin_post_{action}:

function my_save_custom_form() {
    global $wpdb;

    $inputValue = $_POST[\'newValue\'];
    $wpdb->insert(
        \'catalog\',
        array( \'brandSel\' => $inputValue ),
        array( \'%s\' ),
    );

    wp_redirect( site_url(\'/\') ); // <-- here goes address of site that user should be redirected after submitting that form
    die;
}

add_action( \'admin_post_nopriv_save_my_custom_form\', \'my_save_custom_form\' );
add_action( \'admin_post_save_my_custom_form\', \'my_save_custom_form\' );

结束

相关推荐

无法使用$wpdb方法查询自定义表

我使用Sequel Pro为我的Wordpress站点创建了一个自定义表。然后,我尝试使用$wpdb方法从Wordpress PHP文件中查询表。虽然我能够使用标准Wordpress表成功运行查询,但它不适用于我创建的自定义表。所以这一个有效:<?php global $wpdb; $result = $wpdb->get_results ( \" SELECT * FROM $wpdb->users