2016-11-18 2 views
4

Ich arbeite derzeit an einem benutzerdefinierten Wordpress-Plugin, das erfordert, dass der Benutzer eine Liste in einem Formular erstellt, und damit sie ihre Liste füllen, habe ich die Wordpress-Thickbox implementiert. Ich habe die Thickbox-Anzeige mit dem Inhalt erstellt, den ich gerne hätte, aber ich habe Mühe, die Daten an das ursprüngliche Formular zurückzugeben.Wie gebe ich einen Wert aus einer Wordpress Thickbox?

Die ursprüngliche Form ist wie folgt:

<input name="input_that_wants_data" id="input_for_data" type="text" /> 
<a href="#TB_inline?width=600&height=550&inlineId=my-content-id" class="thickbox">Click Here for Modal</a> 

Genau wie Sie jede Form zu sein, erwarten würde. Grundsätzlich möchte ich die Informationen aus dem modalen meine Zeichenfolge übergeben zurück zum input_for_data

Der Code innerhalb des modalen hat mehrere Tabellenzeilen wie folgt aus:

<td><input type="checkbox" class="modal_checkbox_class" value="'.$data->value.'"></td> 

Im Grunde, was ich tun möchte ist ein Array bauen der Werte jedes angeklickten Kontrollkästchens, und verwenden Sie dann die Split-Funktion von Javascript, um es in eine Zeichenfolge umzuwandeln, die ich in das Eingabefeld außerhalb des Modals zurückgeben würde.

Jede und alle Hilfe wird sehr geschätzt. Ich würde dieses

Antwort

2

ich dieses Tutorial etwas zu tun, verwendet, um eine Javascript/JQuery Lösung bevorzugen, die Sie wollen: https://code.tutsplus.com/tutorials/getting-started-with-the-wordpress-media-uploader--cms-22011

Mein Code sieht wie folgt aus:

function renderMediaUploader() { 
    'use strict'; 

    var file_frame, image_data; 

    /** 
    * If an instance of file_frame already exists, then we can open it 
    * rather than creating a new instance. 
    */ 
    if (undefined !== file_frame) { 

     file_frame.open(); 
     return; 

    } 

    /** 
    * If we're this far, then an instance does not exist, so we need to 
    * create our own. 
    * 
    * Here, use the wp.media library to define the settings of the Media 
    * Uploader. We're opting to use the 'post' frame which is a template 
    * defined in WordPress core and are initializing the file frame 
    * with the 'insert' state. 
    * 
    * We're also not allowing the user to select more than one image. 
    */ 
    file_frame = wp.media.frames.file_frame = wp.media({ 
     title: 'Select or Upload Media Of Your Chosen Persuasion', 
      button: { 
      text: 'Use this media' 
      }, 
     multiple: true 
    }); 

    //add items from thickbox to table 
    file_frame.on('select', function() { 

     var attachment = file_frame.state().get('selection').toJSON(); 

     jQuery.each(attachment, function(i, val){ 
      jQuery('table').show(); 
      jQuery('table tbody').append('<tr class="table_row"><td class="col-sm-2"><img class="img-responsive" src="'+val.url+'"></td><td class="col-sm-8"><input style=" display: block;" type="text" name="entry[url][]" value="'+ val.url +'"></td></tr>'); 
     }); 


    }); 

    // Now display the actual file_frame 
    file_frame.open(); 

} 

(function($) { 
    'use strict'; 

    $(function() { 
     $('#set-footer-thumbnail').on('click', function(evt) { 

      // Stop the anchor's default behavior 
      evt.preventDefault(); 

      // Display the media uploader 
      renderMediaUploader(); 

     }); 

    }); 

})(jQuery); 
+0

Vielen Dank für immer zu mir zurück. Ich benutze die Wordpress-Thickbox, und dazu verwende ich nur die Wordpress-Thickbox-Skripte. Da dies eine benutzerdefinierte Thickbox ist und nicht der Medien-Uploader, wie würde ich die Thickbox aufrufen, die sie aufruft? Wäre es immer noch Medien? – Grimace

+0

Ich habe mir gerade Ihren bearbeiteten Code angesehen und er hat jetzt für mich geklickt. Ich verstehe endlich, was es macht. Vielen Dank dafür. Es ist perfekt. Ich habe Manager, um einen Workaround mit $('#input_for_data', window.parent.document).val(data); zu bekommen, aber Ihre Methode arbeitete so viel besser aus und war viel sauberer – Grimace

+0

Sie sind herzlich willkommen ;-) – JanuszO

Verwandte Themen