Пользовательская форма, сохраняющая ввод в базе данных
-
-
Вот [пример для пользовательских данных] (http://wordpress.stackexchange.com/questions/75723/get-user-input-from-a-form/75737#75737).Here is an [example for user data](http://wordpress.stackexchange.com/questions/75723/get-user-input-from-a-form/75737#75737).
- 1
- 2012-12-25
- fuxia
-
7 ответ
- голосов
-
- 2012-12-26
Я собираюсь использовать это решение,но оно похоже на то,чтобы его можно было настроить,и может ли это быть проблемой с темами и обновлениями?
I am going to use this solution, but it seams to be very customize and can that be a problem with themes and upgrades?
-
На мой взгляд,вы должны отделить логику от файла шаблона.Ваш метод,который обрабатывает данные POST,должен быть расположен вfunctions.php и инициализирован [инициализационным крючком] (http://codex.wordpress.org/Plugin_API/Action_Reference/init). Чтобы обрабатывать только отправленные данные для определенного шаблона страницы,вы можете проверить именованное (необязательно скрытое) поле ввода,уникальное для этого шаблона.Вы также можете воспользоваться [is_page_template ()] (http://codex.wordpress.org/Function_Reference/is_page_template)The way I see it, you should separate the logic from the template file. Your method that handles the POST data should be located in functions.php and initialized by a [initialization hook](http://codex.wordpress.org/Plugin_API/Action_Reference/init). To only handle the submitted data for a specific page template, you could check for a named (optionally hidden) input field that's unique for that template. You could also benefit of using [is_page_template()](http://codex.wordpress.org/Function_Reference/is_page_template)
- 0
- 2014-07-11
- estrar
-
действительно полезный URLreally helpful url
- 0
- 2020-01-03
- Rohit
-
- 2013-07-30
Я сам нашел решение проблемы.См. Приведенный ниже код,это сделает.
Поместите код во вновь созданный настраиваемый шаблон .
<?php if (!empty($_POST)) { global $wpdb; $table = wp_achord; $data = array( 'name' => $_POST['yourname'], 'chord' => $_POST['chord'] ); $format = array( '%s', '%s' ); $success=$wpdb->insert( $table, $data, $format ); if($success){ echo 'data has been save' ; } } else { ?> <form method="post"> <input type="text" name="yourname"> <textarea name="chord"></textarea> <input type="submit"> </form> <?php } ?>
I got the problem solution myself. See the code below this will do that.
Put the code inside your newly created custom template.
<?php if (!empty($_POST)) { global $wpdb; $table = wp_achord; $data = array( 'name' => $_POST['yourname'], 'chord' => $_POST['chord'] ); $format = array( '%s', '%s' ); $success=$wpdb->insert( $table, $data, $format ); if($success){ echo 'data has been save' ; } } else { ?> <form method="post"> <input type="text" name="yourname"> <textarea name="chord"></textarea> <input type="submit"> </form> <?php } ?>
-
Боже мой.ни одной формы подтверждения.Oh my god. not even a single form of validation.
- 11
- 2015-05-10
- Jürgen Paul
-
Это решение уязвимо для атак с использованием SQL-инъекций.Пожалуйста,подтвердите ввод.This solution is susceptible to SQL injection attack. Please validate the input.
- 3
- 2018-02-23
- Jon Winstanley
-
- 2012-12-25
Мое предложение:
Используйте контактную форму 7 плюс
База данных контактной формы .Вы можете «спроектировать» свою форму в бэкэнде и вставить во фронтенд с помощью простого шорткода. Расширение базы данных контактной формы позволяет помещать данные в базу данных и предлагает короткие коды для их отображения (или вы можете запросить данные непосредственно из базы данных,если хотите)
My suggestion:
Use Contact Form 7 plus Contact Form DB. You can "design" your form in the backend and putting in the frontend via a simple shortcode.
The Contact Form DB extension let you put your data in the database and offers to you shortcodes to display it (or you can query the data directly from the database if you prefer)
-
Я попробовал контактную форму 7,и она отлично выглядит,но у меня есть вопросы.Можно ли добавить инкрементный/идентификатор в качестве столбца в таблицу.Мне также нужно установить значения раскрывающегося списка на основе значений таблиц.Я никогда раньше не работал с CMS и не знаю,насколько вам нужно и нужно настраивать себя.I have tried Contact Form 7 and it look great but I do have some question. Is it possible to add a incremental/identifier as column to the table. I also need to set the dropdown values based on a tables values. I have never works with a CMS before and don't know how much you should and need to customize your self.
- 0
- 2012-12-26
- boje
-
@boje вы можете использовать плагин расширения [Post My CF7 Form] (https://wordpress.org/plugins/post-my-contact-form-7/),он реорганизует таблицу панели мониторинга CF7,позволяя использовать std [Функциональность WP] (http://justintadlock.com/archives/2011/06/27/custom-columns-for-custom-post-types),чтобы добавить в таблицу настраиваемый столбец.@boje you can with the [Post My CF7 Form](https://wordpress.org/plugins/post-my-contact-form-7/) extension plugin, it reorganises the CF7 dashboard table, allowing you to use std [WP functionality](http://justintadlock.com/archives/2011/06/27/custom-columns-for-custom-post-types) to add a custom column to the table.
- 0
- 2016-10-17
- Aurovrata
-
Могу ли я отображать записи CF7 одного сайта на другом сайте?Can I display the CF7 Records of One Site in Another Site .?
- 0
- 2017-05-29
- Developer
-
Это все еще действующее решение.CFDB поддерживает еще больше плагинов для генерации форм.This is still a valid solution. CFDB supports even more form generator plugins.
- 0
- 2020-01-31
- mrmut
-
- 2012-12-25
Это дают разные способы. Для данных магазина,например,параметров,является таблица параметров, API параметров ,нужное место с записью и массив как элемент хранилища. Но для хранения данных использовать их как сообщения и каждый запрос из формы лучше сохранять также как сообщение. Но и здесь разные возможности. Вы можете сохранить для разных типов сообщений. По умолчанию это "сообщение",также вы можете сохранить его в произвольном типе сообщения. Используйте функцию
wp_insert_post()
,чтобы сохранить для всех типов сообщений после отправить форму от пользователей. Здесь вы найдете прекрасные ответы на эту функцию,эту тему и также в дикой природе www. Вы также можете увидеть небольшой пример в этот ответ 73653 ,включая приложения к форме.It give different ways. For store data, like options is the options table, the options API, the right place with a entry and a array as store element. But for store data to use it like posts and each request from the form is it better to save also like post. But also here different possibilities. You can save for different post types. The default is 'post' and also you can save in a custom post type. Use the function
wp_insert_post()
to save for all post type after send Form from users. You find very fine answers here to this function, this topic ans also in the wild of www. You can also see a small example in this answer 73653, inlcude attachments in the form.-
с помощью wp_insert_post () это не только для комментариев.А если нет,то почему его использовать?Я не понимаю ** таблицы опций **.Быстрый поиск в гугле мне не помогает :(by using the 'wp_insert_post()' is that not only for comment. And if not why do is it good to use that one? I don't get the **options table** idea. A quick search on Google don't help me :(
- 0
- 2012-12-26
- boje
-
Wp_insert_post () не предназначен для комментариев,он предназначен для содержания поста,создайте новый пост.Я обновляю свой ответ,был с мобильного телефона;не очень просто на WPSE.Другой ответ с подсказкой для плагинов такой же,контактная форма 7 или другой вариант создания новых сообщений,но у вас есть требования к плагину.Если вы будете контролировать это,а также источник и будете иметь достаточно ноу-хау в области кодирования,тогда это настраиваемый плагин для создания сообщений наилучшим образом.The `wp_insert_post()` is not for comments, is for post content, create an new post. I update my answer now, was from mobile; not realy easy on WPSE. The other answer with the hint to plugins is the same, Contact Form 7 or other create new posts, but you have the requirements of a plugin. If you will control this, also the source and have enough knowhow about coding, then is a custom plugin to create posts the best way.
- 0
- 2012-12-27
- bueltge
-
Спасибо за вашу помощь Bueltge.Я понимаю,что `wp_insertpost` - это вспомогательная функция для быстрой и сохраненной вставки чего-либо в таблицу базы данных.Если у меня есть таблица (имя=курс) с этими столбцами (идентификатор,имя курса,участник,дата начала,дата окончания).Где я могу определить имя таблицы?Может,я неправильно понял это.Пример кода [ссылка] (http://collabedit.com/b6vye)Thanks for your help so far Bueltge. My understanding of `wp_insertpost` is that it is a help-function for quick and save insert something into a database-table. If i have a table(name=Course) with these column(id, coursename, paricipant, startdate, enddate). Where do i define the tablename? Maybe I understood it comeplety wrong. Code example [link](http://collabedit.com/b6vye)
- 0
- 2012-12-28
- boje
-
Нет,функция создает данные в таблицах Wordpress по умолчанию;минимум в `_posts`,и если у вас есть вложения или метаданные публикации также в других таблицах,они находятся в контакте с публикацией.Но вы просите сохранить данные из формы в wordpress,и я думаю,что это лучший способ.У вас без работы есть пользовательский интерфейс со множеством решений для редактирования и обслуживания элементов из формы.Если вы видите код из моей ссылки поведения,значит,вы видите решение.No, the function create data in the default wordpress tables; minimum in `_posts` and if you have attachments or post meta data also in the other tables, there are in nabership with post. But you ask for save data from form in wordpress and I think, this is the best way. You have without work a UI with many solutions for edit and maintenance the items from form. If you see the code from my behaviour link, then you see the solution.
- 0
- 2012-12-28
- bueltge
-
Спасибо,думаю,мне нужно прочитать еще или найти несколько руководств,чтобы лучше понять настройкуThanks, think i need to read some more or find some tutorials to understand the setup better
- 0
- 2012-12-28
- boje
-
Да,например,моя ссылка в другом ответе или ссылка из Интернета,например [this] (http://clarklab.com/posts/wordpress-front-end-post-form-using-wp_insert_post/).Yes, like my link in the other answer or a link from web, like [this](http://clarklab.com/posts/wordpress-front-end-post-form-using-wp_insert_post/).
- 0
- 2012-12-28
- bueltge
-
- 2016-10-17
Вы также можете использовать отличный плагин Contact Form 7 вместе с PostПлагин My CF7 Formextension ,который позволит вам сохранять любые пользовательские формы в сообщение,включая изображения как избранные вложения,а также выбирать/checkbox/radioinput как таксономии.
Плагин Post My CF7 Form имеет богатую функциональность,которую можно использовать для дальнейшей настройки и настройки способа сохранения ваших форм.Также имеется подробный раздел документации .
You could also use the excellent Contact Form 7 plugin along with the Post My CF7 Form extension plugin which will allow you to save any custom forms to a post, including images as featured attachments, and select/checkbox/radio inputs as taxonomies.
The Post My CF7 Form plugin has a rich functionality that can be leveraged to further customise and tweak the way your forms should be saved. There is a detailed documentation section too.
-
- 2016-05-20
Ваше решение хорошее и может очень хорошо работать.Но есть несколько ограничений.например:
1) Как насчет поиска и сортировки записей,размещаемых через вашу форму? 2) Как насчет экспорта данных,заполненных в вашей форме,в Excel,CSV или PDF? 3) Что делать,если вы хотите распечатать вставленные данные.
Все,чего можно достичь с помощью плагинов Contact Form 7 + Save Contact Form 7
оба - бесплатные широко используемые плагины: http://savecontactform7.com/ http://contactform7.com/
Your solution is good and may work very well. But, there are few limitations. eg:
1) What about searching and sorting entries which are posted through your form? 2) What about exporting the data filled into your form to Excel or CSV or PDF? 3) What if you want to print the inserted data.
All that can be achieved with Contact Form 7 + Save Contact Form 7 plugins.
both are free widely used plugins: http://savecontactform7.com/ http://contactform7.com/
-
Пожалуйста,укажите свою принадлежность и дайте конкретный ответ в соответствии с требованиями вопроса.Это больше похоже на рекламу,чем на подлинное решение.Please disclose your affiliation and make answer specific to the requirements of the question. This reads more like advertisement than genuine solution.
- 0
- 2016-05-20
- Rarst
-
Я согласен,это похоже на рекламу,и я являюсь владельцем формы обратной связи 7. Но решение и ответ полностью соответствуют требованиям вопроса.Так что это определенно поможет человеку,задавшему вопрос.I agree, this looks like an advertisement, and I am an owner of the Save Contact Form 7. But, the solution and answer perfectly aligns with the requirement of the question. So, this is definitely going to help the person who asked the question.
- 0
- 2016-05-22
- Nimblechapps
-
- 2017-02-07
<?php /** Use these line of codes, its working more than 100% */ get_header();?> <?php if (!empty($_POST)) { global $wpdb; $table = wp_contact; $data = array( 'name' => $_POST['aname'], 'email' => $_POST['aemail'], 'subject' => $_POST['asubject'], 'msg' => $_POST['amsg'] ); $format = array( '%s', '%s' ); $success=$wpdb->insert( $table, $data, $format ); if($success){ echo 'data has been saved' ; } } else { ?> <form action="<?php echo get_option('siteurl'); ?>/form/" method="post"> <input type="text" name="aname"> <input type="text" name="aemail"> <input type="text" name="asubject"> <textarea type="text" name="amsg"></textarea> <input type="submit"> </form> <?php } ?>
<?php /** Use these line of codes, its working more than 100% */ get_header();?> <?php if (!empty($_POST)) { global $wpdb; $table = wp_contact; $data = array( 'name' => $_POST['aname'], 'email' => $_POST['aemail'], 'subject' => $_POST['asubject'], 'msg' => $_POST['amsg'] ); $format = array( '%s', '%s' ); $success=$wpdb->insert( $table, $data, $format ); if($success){ echo 'data has been saved' ; } } else { ?> <form action="<?php echo get_option('siteurl'); ?>/form/" method="post"> <input type="text" name="aname"> <input type="text" name="aemail"> <input type="text" name="asubject"> <textarea type="text" name="amsg"></textarea> <input type="submit"> </form> <?php } ?>
Я никогда раньше не использовал WordPress,но имею большой опыт программирования.У меня вопрос,как создавать таможенные формы в WordPress?
Мне нужно создать форму,в которой пользователь заполняет некоторые поля ввода,а при отправке данные должны храниться в базе данных.Мне не нужно никаких уведомлений о сохранении.
Мне также нужно запросить данные и получить результат в виде таблицы HTML.
Спасибо