Modulo personalizzato che memorizza l'input nel database
-
-
Ecco un [esempioperi dati utente] (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 risposta
- voti
-
- 2012-12-26
Utilizzerò questa soluzione,ma sembraesseremoltopersonalizzatae puòessere unproblema contemi e aggiornamenti?
I am going to use this solution, but it seams to be very customize and can that be a problem with themes and upgrades?
-
Per come la vedoio,dovresti separare la logica dalfilemodello.Iltuometodo chegestiscei dati POST dovrebbetrovarsiin functions.phpe inizializzato da un [hook diinizializzazione] (http://codex.wordpress.org/Plugin_API/Action_Reference/init). Pergestire soloi datiinviatiper unmodello dipagina specifico,èpossibile verificare lapresenza di un campo diinput denominato (facoltativamentenascosto) univocoper quelmodello.Potresti anchetrarre vantaggio dall'utilizzo di [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
-
URL davvero utilereally helpful url
- 0
- 2020-01-03
- Rohit
-
- 2013-07-30
Ho ottenutoio stesso la soluzione delproblema.Vediil codice qui sottoperfarlo.
Inserisciil codice all'interno del modellopersonalizzato appena creato.
<?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 } ?>
-
Diomio.nemmeno una singolaforma di convalida.Oh my god. not even a single form of validation.
- 11
- 2015-05-10
- Jürgen Paul
-
Questa soluzione è suscettibile agli attacchi SQLinjection.Siprega di convalidare l'input.This solution is susceptible to SQL injection attack. Please validate the input.
- 3
- 2018-02-23
- Jon Winstanley
-
- 2012-12-25
Ilmio suggerimento:
Utilizzail Modulo di contatto 7 e
Modulo di contatto DB .Puoi "progettare"iltuomodulonelbackende metterlonelfrontendtramite un semplice shortcode. L'estensione Contact Form DBti consente diinserirei tuoi datinel databasee ti offre degli shortcodeper visualizzarli (opuoiinterrogarei dati direttamente dal database sepreferisci)
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)
-
Hoprovato Contact Form 7e sembrafantasticoma ho qualche domanda.Èpossibile aggiungere unincrementale/identificatore come colonna allatabella.Devo ancheimpostarei valori a discesain base ai valori delletabelle.Non homai lavorato con un CMSprimae non so quanto dovrestie haibisogno dipersonalizzarete stesso.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
-
@bojepuoi conilplug-in diestensione [Post My CF7 Form] (https://wordpress.org/plugins/post-my-contact-form-7/),riorganizza latabella del dashboard CF7,permettendoti di utilizzare std [Funzionalità WP] (http://justintadlock.com/archives/2011/06/27/custom-columns-for-custom-post-types)per aggiungere una colonnapersonalizzata allatabella.@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
-
Posso visualizzarei record CF7 di un sitoin un altro sito.?Can I display the CF7 Records of One Site in Another Site .?
- 0
- 2017-05-29
- Developer
-
Questa è ancora una valida soluzione.CFDB supporta ancorapiùpluginperilgeneratore dimoduli.This is still a valid solution. CFDB supports even more form generator plugins.
- 0
- 2020-01-31
- mrmut
-
- 2012-12-25
Offremodi diversi. Peri dati delnegozio,come le opzioni è latabella delle opzioni, l'API delle opzioni ,ilpostogiusto con una vocee un array comeelemento delnegozio. Mapermemorizzarei dati di usarli comeposte ogni richiesta dalmodulo èmeglio salvare anche comepost. Ma anche qui diversepossibilità. Puoi salvareper diversitipi dipost. L'impostazionepredefinita è "post"e puoi anche salvarein untipo dipostpersonalizzato. Utilizza lafunzione
wp_insert_post()
per salvaretuttii tipi dipost dopoinviareilmodulo dagli utenti. Quitrovi rispostemoltobelle a questafunzione,a questo argomentoe anche allo stato selvatico di www. Puoi anche vedere unpiccoloesempioin questa risposta 73653 ,include allegatinelmodulo.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.-
usando 'wp_insert_post ()'non è soloperi commenti.E seno,perché èbene usarlo?Non capisco l'idea della **tabella delle opzioni **.Una rapida ricerca su Googlenonmi aiuta :(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 ()`non èperi commenti,èperil contenuto delpost,crea unnuovopost.Ora aggiorno lamia risposta,era da cellulare;nonpropriofacile su WPSE.L'altra risposta conil suggerimento aiplug-in è la stessa,Contact Form 7 o altro creanuovipost,ma haii requisiti di unplug-in.Se controllerai questo,anche lafontee hai abbastanza know-how sulla codifica,allora è unpluginpersonalizzatoper crearepostnelmodomigliore.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
-
Grazieperiltuo aiutofinora Bueltge.Lamia comprensione di `wp_insertpost` è che è unafunzione di aiutoperinserire rapidamentee salvare qualcosain unatabella di database.Se ho unatabella (name=Course) con queste colonne (id,coursename,paricipant,startdate,enddate).Dove definiscoiltablename?Forse l'ho capito completamente sbagliato.Esempio di codice [link] (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
-
No,lafunzione crea datinelletabelle wordpresspredefinite;minimoin `_posts`e se hai allegati opostmetadati anchenelle altretabelle,ci sonoin nabership conpost.Ma chiedi di salvarei dati dalmoduloin wordpresse penso che questo siailmodomigliore.Hai senza lavoro un'interfaccia utente conmolte soluzionipermodificaree mantenereglielementi dalmodulo.Se vediil codice dal link delmio comportamento,allora vedi la soluzione.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
-
Grazie,penso di averbisogno di leggere altro o ditrovare alcunitutorialper capiremeglio la configurazioneThanks, think i need to read some more or find some tutorials to understand the setup better
- 0
- 2012-12-28
- boje
-
Sì,comeilmio collegamentonell'altra risposta o un collegamento dal web,come [questo] (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
Puoi anche utilizzare l'eccellenteplug-in Contact Form 7insieme al PostIlmioplugin CF7 Formextension cheti permetterà di salvare qualsiasimodulopersonalizzatoin unpost,incluse leimmagini come allegatiin primopiano,e selezionare/checkbox/input radio cometassonomie.
Ilplugin Post My CF7 Form ha una riccafunzionalità chepuòessere sfruttataperpersonalizzare ulteriormentee modificareilmodoin cuii moduli devonoessere salvati.C'è anche una sezione della documentazione dettagliata.
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
Latua soluzione èbuonae potrebbefunzionaremoltobene.Ma ci sonopoche limitazioni.adesempio:
1) Che dire della ricercae dell'ordinamento delle vocipubblicatetramiteilmodulo? 2) Chene dici diesportarei datiinseritinelmoduloin Excel,CSV o PDF? 3) Cosa succede se si desidera stamparei datiinseriti.
Tutto ciò chepuòessere ottenuto coni plug-in Contact Form 7 + Save Contact Form 7.
entrambi sonoplugingratuiti ampiamente utilizzati: 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/
-
Siprega di rivelare lapropria affiliazionee difornire una risposta specifica ai requisiti della domanda.Questo si leggepiù come unapubblicità che come una vera soluzione.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
-
Sono d'accordo,questo sembra un annunciopubblicitarioe sono unproprietario del Save Contact Form 7. Tuttavia,la soluzionee la risposta sonoperfettamentein linea coni requisiti della domanda.Quindi,questo aiuterà sicuramente lapersona che haposto la domanda.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 } ?>
Non homai usato WordPressprima,ma homoltaesperienza diprogrammazione.Lamia domanda è: come crearemodulipersonalizzatiin WordPress?
Hobisogno di creare unmoduloin cui un utente compila alcuni campi diinpute almomento dell'invioi dati dovrebberoesserememorizzatinel database.Non hobisogno di alcunanotifica sul salvataggio.
Devo ancheinterrogarei datie ottenere l'outputin unatabella HTML.
Grazie