2017-01-04 3 views
1

投稿とユーザーIDと日付を比較してデータ(時間)を取得します。しかしテストのために、私は単にajaxでphp関数を呼び出しています。私は別のPHPファイル(myscript.php)を作って、その中で関数を作り、そのようなものをエコーし​​ます。ajaxからseprateファイルのphp関数を呼び出すことができません

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

ボタンをクリックすると、日付とユーザーIDが表示されます。

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 
} 

私はajax urlでそのファイルのURLを指定しました。今はmyscript.phpファイルからデータを出力するはずですが、私はajaxからの応答でこの結果を得ています。

Got this from the server:0 

私もネットワークをチェックしていて、それは私にとっては良いようです。 ajaxはユーザーIDと日付を取得していますが、レスポンスは0です。理由は分かりません。

+0

myscript.phpまたはajaxに問題がある場合は、まず作業してください。 myscript.phpの '$ _POST'を' $ _GET'に変更し、 'myscript.php?date = test'に直接行くと、出力は正しく見えますか?もしそうなら、そのURLはこの行で生成されたURLと一致しますか? 'url:" <?php $ current_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

myscript.phpファイルでmy_action関数を呼び出していません。関数を呼び出すと、目的の結果が得られます。

<?php 

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

my_action(); 

?> 
関連する問題