it-swarm.com.de

TinyMCE-Schaltflächen, die von Ajax generierte Formulare starten

wenn ich den Tutorials folge, wie man tinyMCE Knöpfe für Shortcodes hinzufügt

(Zum Beispiel: http://www.garyc40.com/2010/03/how-to-make-shortcodes-user-friendly/ )

wenn ich eine Schaltfläche erstelle, mit der ein Formular in einer Thickbox gestartet wird, gibt es immer diesen Code, um das gestartete Formular zu erstellen:

// executes this when the DOM is ready
    jQuery(function(){
        // creates a form to be displayed everytime the button is clicked
        // you should achieve this using AJAX instead of direct html code like this
        var form = jQuery('<div id="kiaAWeber-form"><table id="mygallery-table" class="form-table">\
            <tr>\
                <th><label for="mygallery-columns">Columns</label></th>\
                <td><input type="text" id="mygallery-columns" name="columns" value="3" /><br />\
                <small>specify the number of columns.</small></td>\
            </tr>\

        </table>\
        <p class="submit">\
            <input type="button" id="mygallery-submit" class="button-primary" value="Insert Gallery" name="submit" />\
        </p>\
        </div>');

        var table = form.find('table');
        form.appendTo('body').hide();

aber ich bin besonders neugierig auf diesen teil:

// Sie sollten dies mit AJAX erreichen, anstatt direkten HTML-Code wie diesen

ich habe dies in anderen Tutorials und in anderen Plugins gesehen ... aber alles, was ich gesehen habe, tut es weiterhin auf diese hartcodierte Weise. Hat jemand einen Einblick, wie man das über Ajax macht?

ich möchte ein Auswahl-Dropdown mit Werten von get_options () populär machen. Das kann ich in jquery/Java nicht und die js-Datei kann das PHP auch nicht verarbeiten, also dachte ich, Ajax ist die Lösung, die ich gerade bin Ich weiß nicht, wie ich anfangen soll

1
helgatheviking

mit jQuery.ajax () :

also, anstelle dieser großen Formvariablen:

$.ajax({
  type: 'GET',
  url: 'admin-ajax.php',
  data: { action: 'get_my_form' },
  success: function(response){
    var table = $(response).find('table'); // you don't seem to use this "table" var
    $(response).appendTo('body').hide();
    // ...
  }
});

Nun, die PHP:

add_action('wp_ajax_get_my_form',  'get_my_form');

function get_my_form(){
  // build your form here and echo it to the screen
  exit;
}
0
onetrickpony