Erstellen eines Posts aus Daten, die vom HTML-Formular zurückgegeben werden

Ich versuche, ein WordPress-Plugin zu schreiben, und ich habe eine Beule getroffen.

Der Hintergrund: Ich habe einige Daten in einer mySQL DB, die ich benutze (jede Zeile hat eine eindeutige ID und einige andere Informationen, die ich hinzugefügt habe). Ich bin in der Lage, die DB mit zu suchen

$heads = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}costumesdb WHERE location = 'head'", ARRAY_A); 

Und zeigen Sie einige der Informationen an den Benutzer in einem Formular mit (dies ist eine von 5 verschiedenen Dropdown-Menüs, aber sie sind alle auf die gleiche Weise erstellt)

 
Head: <option value="">

Das Skript zum Übermitteln der Formulardaten an den Server lautet:

  jQuery.ajax({ type: "POST", url: ajax_url, data: { action: 'my_action' , param: 'st1' } }).done(function( msg ) { alert( "Data Saved: " + msg.response ); });  

In meiner PHP-Datei Server ist:

 add_action('wp_ajax_my_action', 'my_ajax_action_function'); function my_ajax_action_function(){ $reponse = array(); if(!empty($_POST['param'])){ $response['response'] = "I've get the param a its value is ".$_POST['param'].' and the plugin url is '.plugins_url(); } else { $response['response'] = "You didn't send the param"; } header( "Content-Type: application/json" ); echo json_encode($response); exit(); 

Das Problem: Wenn ich action = “admin-ajax.php” in der Form setze, werde ich mit einer “0” Antwort auf die admin-ajax.php Seite gestartet.

Wie bekomme ich Daten von einem Formular in der WordPress Admin-Seite und bearbeite es?

Solutions Collecting From Web of "Erstellen eines Posts aus Daten, die vom HTML-Formular zurückgegeben werden"

Ich habe es ausgearbeitet und den Code neu geschrieben:

 jQuery(document).ready(function() { jQuery('#createacostume').submit(function( event ) { event.preventDefault(); var aForm = jQuery(this); var bForm = aForm.serializeArray(); bForm.push({name: 'action', value: 'myAjaxFunction'}); jQuery.ajax({ url: ajaxurl, type: "POST", data: bForm, success: function(resp) { alert("Thank you for your post. We will review it and approve it shortly" + resp); }, error: function( req, status, err ) { alert( 'something went wrong, Status: ' + status + ' and error: ' + err ); } }) .fail(function() { alert("error"); }) ; return false; }); }); 

Sie müssen auf die Form der Ajax-function drücken, die Sie aufrufen.