jQuery i ajax nie działa
-
Witam,
mam problem z odwołaniem do funkcji na serwerze przez ajax.
1. Dodanie w functions.php linijki
wp_enqueue_script(’jquery’);
nie umożliwia korzystania z jQuery, muszę dodać linijkę
wp_enqueue_script(’HANDLE1′, 'http://code.jquery.com/jquery-3.1.1.min.js’);2. Nie działa wywołanie $.post. Po prostu nie wywołuje akcji, prawdopodobnie nie uruchamia admin-ajax.php i nie wiem dlaczego.
Wywołanie funkcji js AktualizujDane działa prawidłowo do momentu $.post
Co pominąłem? Proszę o pomoc i z góry dziękuję 😉
Tomekfunctions.php:
add_action(’wp_ajax_zapisz_subskrypcje’, 'ZapiszSubskrypcje’);
add_action(’wp_ajax_nopriv_zapisz_subskrypcje’, 'ZapiszSubskrypcje’);add_action(’wp_enqueue_scripts’, 'jj_enqueue_ajax_scripts’);
function jj_enqueue_ajax_scripts() {
wp_enqueue_script(’HANDLE1′, 'http://code.jquery.com/jquery-3.1.1.min.js’);
wp_enqueue_script(’jquery’);//nasz plik z którego wyślemy zapytanie
wp_enqueue_script(’myscripts’, get_template_directory_uri() . '/js/aktualizujsubskrypcje.js’, __FILE__);//ustalamy odpowiedni protokół
if (isset($_SERVER[’HTTPS’]))
$protocol = 'https://’;
else
$protocol = 'http://’;//pobieramy adres do pliku admin-ajax.php
$admin_ajax_url = admin_url(’admin-ajax.php’, $protocol);//za pomocą tej funkcji przekazujemy zmienną zawierająca adres, do javascript
wp_localize_script(’myscripts’, 'ajax_options’, array(’admin_ajax_url’ => $admin_ajax_url));
}function ZapiszSubskrypcje() {
if (isset($_POST[’userid’])) {
$userid = $_POST[’userid’];
}
if (isset($_POST[’sdataod’])) {
$sdataod = $_POST[’sdataod’];
}
if (isset($_POST[’sdatado’])) {
$sdatado = $_POST[’sdatado’];
}
?>
<script>
alert(’Jestem w aktualizacji’);
</script>
<?php
update_user_meta($userid, 'subskrypcja_od’, $sdataod);
update_user_meta($userid, 'subskrypcja_do’, $sdatado);$sukces = TRUE;
if ($sukces) {
print (json_encode([
'sukces’ => TRUE
]));
} else {
print (json_encode([
'sukces’ => FALSE
]));
}
die();
}aktualizujsubskrypcje.js:
function AktualizujDane(id, wywolanie_zapisania) {
var userid = id;
//var dataod = 'od—>’;
//var datado = ’—>do’;
//var dataod = document.getElementsByName(’sod’ + id)[0].value;
//var datado = document.getElementsByName(’sdo’ + id)[0].value;
var dataod = $(’#sod’ + id).val();
var datado = $(’#sdo’ + id).val();alert(dataod + ’ ’ + datado);
var data = {
'action’: 'zapisz_subskrypcje’,
'puserid’: userid,
'psdataod’: dataod,
'psdatado’: datado}
alert(ajax_options.admin_ajax_url);
$.post(ajax_options.admin_ajax_url, data,
function (response) {
if (response.sukces === true)
alert(’OK’);
else
alert(’Czapa’);}
);}
Strona przy której potrzebuję pomocy: [zaloguj się aby zobaczyć ten link]
- Temat ‘jQuery i ajax nie działa’ jest zamknięty na nowe odpowiedzi.