Ejemplos de Ajax

ejemplosAjax

Las función GET:

 function llamadaAjax(action) {
 var mail = document.getElementById("mail").value;
 var num = document.getElementById("numero").value;
 var miajax = new XMLHttpRequest();
 miajax.onreadystatechange = function () {
 if (miajax.readyState == 4 && miajax.status == 200) {
 document.getElementById('resultado').innerHTML = miajax.responseText;
 }
 }
 miajax.open('GET', 'test.php?num=' + num + '&mail=' + mail + "&action=" + action, true);
 miajax.send();
 }

La función POST:

  function llamadaAjaxPost() {
            var mail = document.getElementById("mail").value;
            var miajax = new XMLHttpRequest();
            miajax.onreadystatechange = function () {
                if (miajax.readyState == 4 && miajax.status == 200) {
                    document.getElementById('resultado').innerHTML = miajax.responseText;
                }
            }
            miajax.open('POSt', 'testpost.php', true);
            miajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            miajax.send("mail="+mail);
        }

Ejemplo de autocomplete con AJAX

Código html:

 $( "#paises2" ).autocomplete({
 source: "paises_lista.php"
 });

Código php:

<?php
include_once 'conexionPDO.php';
$sql = "select * from country where country_id=-1";
$sql = "select country as value from country where country like '%" . $_GET["term"] . "%'";
$resul = $conn->query($sql);
$paises = $resul->fetchAll();
echo json_encode($paises);

productos_autocomplete

Plugin Frase del día: action, filter y widget

<?php
/*
 Plugin Name: Frase del día
 Plugin URI: https://es.wikiquote.org/wiki/Portada
 Description: Muestra una frase del día diferente
 Author: Jota Peich
 Version: 1.0
 Author URI: http://intelisen.com
 */

function frase_getFrase() {
 $upload = wp_upload_dir();

 $frases = file($upload['basedir'] . "/frases.txt");
 return $frases[rand(0, count($frases) - 1)];
}

function frase_ponFrase() {
 echo frase_getFrase();
}

add_action('admin_notices', 'frase_ponFrase');

function frase_filtro($contenido) {
 return $contenido . "<br/>" . frase_getFrase();
}

add_filter("the_content", 'frase_filtro');

class FraseWidget extends WP_Widget {

 function FraseWidget() {
 $widget_ops = array('classname' => 'FraseWidget', 'description' => 'Muestra una frase del día');
 $this->WP_Widget('FraseWidget', 'Frase del día', $widget_ops);
 }

 function form($instance) {
 $instance = wp_parse_args((array) $instance, array('title' => ''));
 $title = $instance['title'];
 ?>
 <p><label for="<?php echo $this->get_field_id('title'); ?>"><?= _e('Title') ?>: <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo attribute_escape($title); ?>" /></label></p>
 <?php
 }

 function update($new_instance, $old_instance) {
 $instance = $old_instance;
 $instance['title'] = $new_instance['title'];
 return $instance;
 }

 function widget($args, $instance) {
 extract($args, EXTR_SKIP);

 echo $before_widget;
 $title = empty($instance['title']) ? ' ' : apply_filters('widget_title', $instance['title']);

 if (!empty($title))
 echo $before_title . $title . $after_title;;

 echo frase_getFrase();

 echo $after_widget;
 }

}

add_action('widgets_init', create_function('', 'return register_widget("FraseWidget");'));

Crear host virtual

A la hora de desarrollar una web es conveniente tener configurado un host virtual. Así podemos acceder vía una web falsa. Por ejemplo, si estoy desarrollando la web miweb.com, puedo crear un host llamado miweb.dev para el desarrollo que apunte a la carpeta local.

¿Cómo hacerlo? Básicamente hay que hacer dos cosas: decirle a windows que ese dominio es local y configurar un host virtual.

Lo primero se hace en:

C:\Windows\System32\drivers\etc\hosts

Añadiendo lo siguiente:

127.0.0.1 miweb.dev

Lo segundo en C:\xampp\apache\conf\extra\httpd-vhosts.conf

Añadiendo lo siguiente:

<Directory “C:/xampp/htdocs/”>
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>

<VirtualHost *:80>
ServerAdmin webmaster@gmail.com
DocumentRoot “C:/xampp/htdocs/miweb”
ServerName miweb.dev
</VirtualHost>

Redirigir un dominio a un hosting

Cuando contratamos un hosting puede ser virtual o compartido, en cuyo caso por lo general nos proporcionan las dns que tenemos que poner en el dominio, o dedicado, en cuyo caso tenemos una ip donde está nuestro alojamiento.

En el primer caso tenemos que introducir las dns en el apartado que para tal fin tenga nuestro dominio:

dns

En el caso de tener una ip tenemos que redirigir los registros:

ip

Guardar datos en options

<?php

/*
 Plugin Name: Guarda datos
 Plugin URI: https://es.wikiquote.org/wiki/Portada
 Description: Guarda mi nombre y apellidos y nada más
 Author: Jota Peich
 Version: 1.0
 Author URI: http://intelisen.com
 */

add_action('admin_menu', 'guardar_menu');
add_action('admin_init', 'guardar_settings');

function guardar_settings() {
 register_setting('guardar-group', 'guardar_nombre');
 register_setting('guardar-group', 'guardar_apellido');
}

function guardar_menu() {
 add_options_page('Guardar datos personales', 'Guardar datos', 'manage_options', 'guardar-datos', 'guardar_options');
}

function guardar_options() {
 if (!current_user_can('manage_options')) {
 wp_die('No tiene permiso.');
 }
 ?>

 <div>
 <?php screen_icon(); ?>
 <h2>Guardar datos personales</h2>

 <form method="post" action="options.php">
 <?php
 settings_fields('guardar-group');
 do_settings_fields('guardar-group', '');
 ?>

 <p>Nombre</p>
 <input size="70" type="text" name="guardar_nombre" value="<?php echo get_option('guardar_nombre'); ?>" />
 <p>Apellido</p>
 <input size="70" type="text" name="guardar_apellido" value="<?php echo get_option('guardar_apellido'); ?>" />

 <?php
 submit_button();
 ?>
 </form>
 </div>
 <?php
}