2017-01-04 1 views
1

Я хочу получить данные (время), сравнивая идентификатор пользователя и дату с сообщением. Но для тестирования я просто вызываю php-функцию ajax. Я создал отдельный php-файл (myscript.php), в котором я создал функцию и эхо-код вроде этого.вызов функции php в файле seprate из ajax не работает

function my_action(){ 
    echo "dasdasasdaaddad"; 
    $date = $_POST['date']; 
    echo $date; 
    return $date; 
} 

Теперь, когда я нажимаю на кнопку, я получаю дату и идентификатор пользователя.

global $wp; 
$current_url = home_url(add_query_arg(array(),$wp->request)); 
add_action('the_content', 'my_action_javascript'); 
function my_action_javascript() { 
$current_user = wp_get_current_user(); 
$uid = $current_user->ID; 
?> 
<script type="text/javascript" > 
    jQuery(".date").click(function(){ 

     clicked = this; 
    var dates= jQuery(clicked).closest("ul").find(".getdate").val(); 
    var item= jQuery(this).closest("li.lia"); 
    var date = jQuery(item).find("input.getdate").val(); 
    //var dates = jQuery(item).find("input.getdate").val(); 


    alert(date); 
    jQuery.ajax({ 

     type:"post", 
     url: "<?php $current_url;?>/myscript.php", 

    data : { 
     'action': 'my_action', 
     'date': date, 
     'userid': "<?php echo $uid?>" 
    }, 

    // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php 
    success: function(data) { 
      successmessage = 'Data was succesfully captured'; 
      $("label#successmessage").text(successmessage); 
     }, 
     error: function(data) { 
      successmessage = 'Error'; 
      $("label#successmessage").text(successmessage); 
     }, 
    }); 
}); 
</script> 
<?php 
} 

Я указал URL-адрес этого файла в URL-адресе ajax. Теперь он должен печатать данные из файла myscript.php, но я получаю этот результат в ответ от ajax.

Got this from the server:0 

Я также проверил сеть, и мне кажется, что это хорошо. ajax получает идентификатор пользователя и дату, но ответ 0. Не знаете, почему?

+0

Начать разработку, если проблема в myscript.php или вашем ajax. Если вы измените '$ _POST' в myscript.php на' $ _GET', и вы перейдете непосредственно к 'myscript.php? Date = test', выглядит ли выход правильно? Если это так, соответствует ли этот URL URL, сгенерированный этой строкой: 'url:" /Myscript.php ",'? – Hobo

ответ

0

на myscript.php удалить функцию my_action() .. потому что вы этого не называете.

if you want to call this before that use my_function(); 

<?php 
my_function(); 
function my_action(){ 
echo "dasdasasdaaddad"; 
$date = $_POST['date']; 
echo $date; 
return $date; 
} 

?> 
+0

Спасибо, но результат такой же. Получил это с сервера: 0 –

+0

вы можете писать на php-странице print_r ($ _ POST); и проверить –

+0

все еще ничего. :/ –

0

Вы не вызываете свою функцию my_action в файле myscript.php. Вызовите свою функцию, и получите желаемый результат.

<?php 

function my_action(){ 
    echo "dasdasasdaaddad"; 
    $date = $_POST['date']; 
    echo $date; 
    return $date; 
} 

my_action(); 

?> 
Смежные вопросы