2017-08-09 19 views
0

jQueryの整数をPHPのセッション配列に渡そうとしています。 私はIDを持つボタンを持っています、このIDはセッション配列に追加する必要があります。jQueryからPHPへの整数の受け渡しセッション配列

私はとのセッションを開始しました:

// ADD SESSION START TO HEADER 
function hook_session() { 
if(session_id() == ''){ 
    session_start(); 

    $parts=array(); 

    $_SESSION['parts']=$parts; 
}  
} 
add_action('wp_head', 'hook_session'); 

私のjQuery:

$('.product-button').click(function(){ 
    $id = $(this).val(); 
    $id = parseInt($id); 
    $.ajax({ 
     url: ajaxurl, 
     type: 'POST', 
     data: $id, 
     dataType: 'jsonp', 
     success: function (result) { 
      console.log('Yay it worked'); 
     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
      console.log('Something went wrong'); 
     } 
    }); 
}); 

私のPHP:

私が間違っているつもりです
<?php 
array_push($_SESSION['parts'],$_POST[$id]); 
print_r($_SESSION['parts']);?> 

? ありがとう!

+0

を使用していない私はあなたが少しより多くの情報を提供するために、あなたの投稿を編集すべきだと思う - のように:このコードの結果は何ですか?あなたはコンソールで "Yay it worked"というメッセージが表示されますか、または "何か間違っています"と表示されますか?配列に値が設定されているかどうかまた、 'ajaxurl'とは何か、おそらくあなたはあなたがPHPページに投稿していると確信していますか? – DaveyDaveDave

+0

@DaveyDaveDave私が関数を実行すると、「何かが間違っている」というメッセージが表示されます。 ajaxurlは元の投稿にphpが含まれているphpファイルへのURLを含むjquery varです。 – polonium

答えて

3

POSTパラメータに名前を指定していません。

$.ajax({ 
    url: ajaxurl, 
    type: 'POST', 
    data: { id: $id }, 
    success: function (result) { 
     console.log('Yay it worked'); 
    }, 
    error: function (xhr, ajaxOptions, thrownError) { 
     console.log('Something went wrong'); 
    } 
}); 

PHPでは、$_POST['id']を使用してパラメータにアクセスします。

<?php 
session_start(); 
array_push($_SESSION['parts'],$_POST['id']); 
print_r($_SESSION['parts']); 
?> 

また、print_r()JSONP形式の出力を生成しませんので、dataType: 'jsonp'

関連する問題