如果我按照有关如何为短代码添加tinyMCE按钮的教程进行操作
(例如:http://www.garyc40.com/2010/03/how-to-make-shortcodes-user-friendly/ )
如果我在thickbox中创建一个启动表单的按钮,则始终会有以下代码来创建启动的表单:
// 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();
但我对这一部分特别好奇:
// you should achieve this using AJAX instead of direct html code like this
我在其他教程和其他插件中看到过这一点。。。。但我所看到的一切都是以这种硬编码的方式继续进行的。有人知道如何通过ajax实现这一点吗?
我想用get\\u options()中的值流行一个select下拉列表。。这在jquery/java中是做不到的,js文件也不能处理php,所以我想ajax是解决方案,我只是不知道如何开始
最合适的回答,由SO网友:onetrickpony 整理而成
通过使用jQuery.ajax():
因此,与其使用大的表单变量:
$.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();
// ...
}
});
现在,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;
}