簡體   English   中英

在Wordpress(dev-plugin)中單擊按鈕后調用函數

[英]Calling a function after a click on a button in Wordpress (dev-plugin)

這是我的代碼,我想做第73行附近的注釋(//我如何調用函數post_type_search_callback在這里???)。 結果需要在同一頁面的“表單”下方。 我正在嘗試一些有關Web中的Ajax的教程,但沒有成功。 請幫助! 謝謝!

 <?php class OwnersTriplify { const plugin_name = 'Owners-triplify'; public static function head() { } public static function initialize() { add_action('admin_menu', 'owners_triplify_admin_actions'); function owners_triplify_admin_actions() { add_menu_page('Owners Triplify', 'Owners Triplify', 'manage_options', 'owners-triplify/includes/OwnersTriplify.php', 'owners_triplify', plugins_url('owners-triplify/images/icon.png')); } function register_my_setting() { register_setting( 'hd-group', 'hd_options'); } add_action( 'admin_init', 'register_my_setting' ); add_action( 'admin_enqueue_scripts', 'post_type_search_enqueue' ); function post_type_search_enqueue($hook) { if( 'index.php' != $hook ) { // Only applies to dashboard panel return; } wp_enqueue_script( 'ajax-script', plugins_url( '/js/post_type_search_query.js', __FILE__ ), array('jquery') ); // in JavaScript, object properties are accessed as ajax_object.ajax_url, ajax_object.we_value wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'we_value' => 1234 ) ); } function owners_triplify() { ?> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script> <div id="div1"> <h3>Digite o post-type que deseja triplificar: </h3> <br/> <form method="post" name="form1" action=""> <input name="postType" value="" id="postType"> <input type="hidden" name="action" value="update"> <input type="hidden" name="option_page" value="hd_options"> <button id="button1" name="termoPesquisado" type="submit" class="button-primary">Pesquisar</button> </form> <br/> </div> <script> $("#button1").click(function () { //HOW CAN I CALL FUNCTION post_type_search_callback HERE??? }); /*$("#button1").click(function () { if ( $("#div2").is( ":hidden" ) ) { $("#div2").slideDown(); $("#div1").hide(); } else { } });*/ </script> <?php } function pegaValores($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } $termo = pegaValores($_POST["postType"]); ?> <?php add_action('wp_ajax_post_type_search', 'post_type_search_callback'); function post_type_search_callback() { ?> <div id="div2"> <h3>Digite as equivalências: </h3> <?php global $wpdb; $resultado = $wpdb->get_results("SELECT distinct meta_key FROM $wpdb->postmeta WHERE post_id in(SELECT ID FROM $wpdb->posts WHERE post_type = '".$termo."')"); $correspondencias; $tamanhoResultado = count($resultado); for($i = 1; $i <= $tamanhoResultado; $i++) { $correspondencias[$i] = "correspondencia"; } $contador = 1; //$resultado_array = array(); foreach($resultado as $resultadoX) { echo "<p>". $resultado_array[] = $contador."- ".$resultadoX->meta_key." => ". "<input value=".$correspondencias[$contador]." id='correspondencia".$contador."'/>". "</p>"; //descobrir como colocar $contador + 1 para imprimir, a fim de que inicialize com 0 o contador eo for do correspondencias $contador++; //$datacount = implode('-',$resultado_array); ?> <?php } ?> <button id="button2" name="triplify" onclick="atualizaValores()" class="button-primary" >Triplificar</button> </div> <?php } } } ?> 

PHP功能

請注意,您是在initialize .....內部聲明所有函數,更好地是在其他函數之外聲明函數,並在需要時調用它們。

add_action( 'wp_ajax_post_type_search_callback', array( 'OwnersTriplify', 'my_action_post_type_search_callback' ) );
add_action( 'wp_ajax_post_type_search_callback', array( 'OwnersTriplify', 'my_action_post_type_search_callback' ) );

function post_type_search_callback() {
    $data= $_POST['variable'];

    $output= 'i was returned with ajax';
    //need to echo output and exit here
echo $output;
exit();
}

jQuery您需要使用單詞jQuery或為jQuery定義$以便在wordpress中工作。

jQuery(document).ready(function() { // wait for page to finish loading 
   jQuery("#button1").click(function () {

    jQuery.ajax({
        type: "POST",
        url: "/wp-admin/admin-ajax.php",
        data: {
            action: 'post_type_search_callback',
            variable: 45 // enter in anyname here instead of variable, you will need to catch this value using $_POST['variable'] in your php function.
        },
        success: function (output) {
           console.log(output);
        }
    });

  });
});

進一步閱讀:

http://web-profile.com.ua/wordpress/dev/ajax-in-wordpress/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM