Wordpress: сохранение данных формы в БД - PullRequest
1 голос
/ 20 июля 2011

Итак, у меня есть форма, которую пользователь заполняет.Это является обязательным, поэтому заменяет содержимое публикации, пока оно не будет заполнено.Я хочу, чтобы это было сохранено в созданной мной таблице ... Я что-то упустил, но я не уверен, что.

В конце концов я заверну форму в if, чтобы определить, является ли пользовательотправил форму или нет, но сейчас я просто пытаюсь заставить эту чертову штуку работать!

Спасибо всем.

<?php function make_user_feedback_form() {

    global $current_user;
    if ( is_user_logged_in() ) {

        $ufUserID = $current_user->ID;
        $ufResponses = serialize($_POST['responseFields']);
        if ( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == 'updateFeedback' ) {
            $ufDataUpdate = $wpdb->insert( 'wp_user_feedback', array( 'date' => current_time('mysql'), 'user' => $ufUserID, 'responses' => $ufResponses ) );
        }?>

    <ol>
        <form method="post">
            <li>Question 01<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 02<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 03<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 04<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 05<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 06<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 07<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 08<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 09<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 10<br /><input type="text" id="responseFields[]" value="" /></li>
            <li><input name="submit" type="submit" id="submit" class="submit button" value="Send feedback" /></li>
            <?php wp_nonce_field( 'updateFeedback' ); ?>
            <input name="action" type="hidden" id="action" value="updateFeedback" />
        </form>
    </ol>
    <?php }
}

add_action('the_content','make_user_feedback_form');
?>

1 Ответ

2 голосов
/ 21 июля 2011

Опять же, одинарные кавычки нарушают сериализацию ($ _ POST ["responseFields"]), мне пришлось вызвать $ wpdb, и кажется, что использование имени (в отличие от id) для полей предпочтительнее?В любом случае приведенный ниже код работает.

<?php function make_user_feedback_form() {
    global $wpdb;
    global $current_user;
    if ( is_user_logged_in() ) {

        $ufUserID = $current_user->ID;
        $ufResponses = serialize($_POST["responseFields"]);
        if ( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == 'updateFeedback' ) {
            $ufDataUpdate = $wpdb->insert( 'wp_user_feedback', array( 'date' => current_time('mysql'), 'user' => $ufUserID, 'responses' => $ufResponses ) );
        }?>

    <ol>
        <form method="post">
            <li>Question 01<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 02<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 03<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 04<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 05<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 06<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 07<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 08<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 09<br /><input type="text" id="responseFields[]" value="" /></li>
            <li>Question 10<br /><input type="text" id="responseFields[]" value="" /></li>
            <li><input name="submit" type="submit" id="submit" class="submit button" value="Send feedback" /></li>
            <?php wp_nonce_field( 'updateFeedback' ); ?>
            <input name="action" type="hidden" id="action" value="updateFeedback" />
        </form>
    </ol>
    <?php }
}

add_action('the_content','make_user_feedback_form');
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...