Skip to content

Introduction

HTMX is a great tool for creating AJAX-driven sites, but it has some limitations.

With the CAV Alpine Plugin, in a single $rest call an unlimited number of elements can be update. You can also $do many other types of actions besides updating elements contents.

The actions are received from the server, so you can perform different actions for success and errors cases.

Implementation Examples

WordPress

php
wp_localize_script('main', 'wp', [
   'ajaxUrl' => admin_url( 'admin-ajax.php' )
]);

add_action('wp_ajax_ActionName', 'ajax_action_cb');
add_action('wp_ajax_nopriv_ActionName', 'ajax_action_cb');
function ajax_action_cb(){
   $actions[] = [
      'action'  => 'toast',
      'content' => 'Login with success!',
   ];
   $actions[] = [
      'action'  => 'go',
      'content' => home_url('/dashboard'),
   ];

   wp_send_json_success($actions);
}
php
wp_localize_script('main', 'wp', [
   'apiBase' => get_rest_url(),
]);

function rest_route_callback($request)
{
   $page = $request->get_param('page');

   $actions[] = [
      'action'  => 'append',
      'target'  => '#content',
      'content' => $content,
   ];
   $actions[] = [
      'action' => 'scroll',
      'target' => '#top',
   ];

   return new WP_REST_Response($actions);
}
html
<form x-on:submit.prevent="$rest.post(wp.ajaxUrl)">
   <input type="hidden" name="action" value="ActionName" />
</form>
html
<button x-on:click="$rest.get(wp.apiBase + '/page', {page: 5})">Load page 5</button>

Released under the GPLv3 License.