Pregunta sobre Developing with WordPress de Wordpress:

actualizar la funci贸n php con jquery

Un usuario pregunt贸 馃憞

Hola a todos. Quiero actualizar la funci贸n php cada 30 segundos y mi c贸digo es: – // funci贸n php


<?php
function circlemessageshow() {
  global $wpdb;
  $mymessage  = $wpdb->get_results("SELECT option_value FROM wp_options WHERE option_id = 142");
  foreach($mymessage as $page){
    $circlemessageshowbox = $page->option_value;
    return $circlemessageshowbox;
  }
};
?>

guardar en refresh-circlemessage.php

// mi c贸digo js


function circlemessage() {
	// I test every code But not Working // tested one by one
	// return circlemessageshow() function => output : show content but not refresh data every 2sec
return document.getElementById('circlemessageshow-refresh').innerHTML = refresh_object.php_function;

	// when load refresh-circlemessage.php and load circlemessageshow() function in this file => output :  Call to a member function get_results() on null
	$("#circlemessageshow-refresh").load(refresh_object.php_url);

}

$(document).ready(function() {
	setInterval(circlemessage,2000);
});

poner en cola el archivo de secuencia de comandos para la localizaci贸n


function add_refreshjquery() {
  wp_register_script( 'refresh-js', get_template_directory_uri(). '/js/refresh.js', array('jquery'), '1.0.0', true );
  wp_localize_script( 'refresh-js','refresh_object',array(
    'php_url' => get_template_directory_uri(). '/template-parts/refresh-circlemessage.php',
    'php_function' => circlemessageshow(),
    'php_url_config' => get_site_url(). '/wp-config.php',
    'php_url_load' => get_site_url(). '/wp-load.php'
  ));
  wp_enqueue_script('refresh-js');
}
add_action('wp_enqueue_scripts', 'add_refreshjquery');

y etiqueta html para mostrar mensaje


    <div class='circlemessage-esteam-modalbox-body' id='circlemessageshow-refresh-content'>
        <div id='circlemessageshow-refresh'></div>
          
      </div>

驴Alguien puede ayudarme a resolverlo (si puede funcionar de otra manera, d铆galo) para todos los cuerpos Buena suerte

(@ alegremente)

Hace 1 a帽o, 6 meses

Su PHP asume que el entorno de WordPress est谩 cargado, pero su JS llama directamente a un archivo PHP que no est谩 cargando WordPress. No necesita todo WordPress para leer la base de datos, por lo que podr铆a hacerlo sin 茅l, pero aseg煤rese de que no quede ning煤n agujero de seguridad o los piratas inform谩ticos solo lo usar谩n para modificar las contrase帽as de los usuarios. Para usar WordPress desde JS, puede usar la interfaz AJAX de WordPress o la API REST.

(@decreto)

Hace 1 a帽o, 6 meses

muchas gracias por responder y por mostrar una forma de resolver este problema

(@decreto)

Hace 1 a帽o, 6 meses

Hola chicos, hice una pregunta hace unos d铆as sobre la actualizaci贸n de la funci贸n php con jquery y mi amigo dijo alegr铆a: usando la interfaz de wordpress ajax resolv铆 mi problema y lo comparto: ::::::::::::: mes c贸digo js :::::::::::::::::


jQuery(document).ready(function($) {
	var data = {
		'action': 'refresh_message'     // We pass php values differently!
	};
	// We can also pass the url value separately from ajaxurl for front end AJAX implementations
	function refreshmessage() {

		jQuery.post(refresh_object.php_ajax, data, function(response) {
			$("#circlemessageshow-refresh").html(response);
		});
	}

setInterval(refreshmessage,000);
});

<a href="https://codex.wordpress.org/AJAX_in_Plugins" rel="noopener" target="_blank">source</a>

:::::::::::::: mi c贸digo php :::::::::::::::::::


function add_refreshjquery() {
  wp_register_script( 'refresh-js', get_template_directory_uri(). '/js/refresh.js', array('jquery'), '1.0.0', true );
  wp_localize_script( 'refresh-js','refresh_object',array(
    'php_ajax' => admin_url( 'admin-ajax.php' ),
  ));
  wp_enqueue_script('refresh-js');
}
add_action('wp_enqueue_scripts', 'add_refreshjquery');

add_action( 'wp_ajax_refresh_message', 'my_action' );
function my_action() {
	global $wpdb;
  $mymessage  = $wpdb->get_results("SELECT option_value FROM wp_options WHERE option_id = 142");
  foreach($mymessage as $page){
    $circlemessageshowbox = $page->option_value;
    echo $circlemessageshowbox;
  }
  wp_die();
}

fuente

Esta respuesta fue modificada hace 1 a帽o, 6 meses.

驴Solucion贸 tu problema??

0 / 0

Deja una respuesta 0

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *