2016-03-27 4 views
0

助けが必要です。Ajax Jsonは正しい値をデコードします

送信する前にエンコードされたjquery ajaxでデータを送信しています。 PHPで

[["Snooks",true],["blastman125",true],["Firebad",true]] 

は私が行います

$player_j_info = json_decode(stripslashes($_POST['player_info'])); 

foreach($player_j_info as $p_info){ 
    echo "Name: $p_info[0]<br/>Val: $p_info[1]<br/><br/>"; 
} 

私は、それが唯一の配列の最後の値を返すことを行う

。誰かが説明できますか?

ありがとうございます!

編集:

$(document).on('click', '.update_league_team_submit', function(event){ 
    var form_player_count = 0; 
    var form_player_selected_count = 0; 

    var player_data_array = []; 
    var player_data_json_array; 

    $('#form_players #team_players_group input').each(function() { 

     var this_member_name = $(this).attr("name"); 
     var this_member_value = $(this).prop('checked'); 

     player_data_array[form_player_count] = [this_member_name, this_member_value]; 

     player_data_json_array = JSON.stringify(player_data_array); 

     form_player_count++; 
     if($(this).prop('checked') === true){ 
      form_player_selected_count++; 
     } 
    }); 

var formData = { 
     'league_id' : $('input[name=league_id]').val(), 
     'team_id' : $('input[name=league_team_id]').val(), 
     'player_info' : player_data_json_array, 
     'form_player_count' : form_player_count, 
     'form_player_selected_count' : form_player_selected_count 
    }; 

$.ajax({ 
     type : 'POST', // define the type of HTTP verb we want to use (POST for our form) 
     url : '/league/pop_join_league_member_submit.php', // the url where we want to POST 
     data : formData, // our data object 
     dataType : 'json', // what type of data do we expect back from the server 
     encode : true, 
     beforeSend: function(){ 
      $("#form_players .form_info").remove(); 
      $("#form_players .form_controls p").hide(); 
      } 
     }) 
     .done(function(data) { 
      if (! data.success) { 
       $("#form_players .form_info").remove(); 
       $("#form_players .form_controls p").hide(); 
       if (data.errors.bam) { 
        $("#form_players").append(data.errors.bam); 
       } 
       if (data.errors.invalid_member_size){ 
        $("#form_players .form_controls .spinner").remove(); 
        $("#form_players .form_controls p").show(); 
        $('<div class="form_info" style="padding-top:8px;"><span class="error">You selected too many members, try again.</span></div>').insertBefore('#form_players .form_controls').hide().fadeIn(); 
       } 
       $("#form_players .form_info").remove(); 
       $("#form_players .form_controls p").show(); 
      } else { 
       $("#form_players .form_controls .spinner").remove(); 
       $("#form_players .form_controls p").show(); 
       $('<div class="form_info" style="padding-top:8px;"><span class="success success_page">Teams updated.</span></div>').insertBefore('#form_players .form_controls').hide().fadeIn(); 
      } 
     }); 
    event.preventDefault(); 
}); 

答えて

1

あなたはJSONに多少の誤差があります。それは次のようになります:

あなたが書いたものはまったく解析すべきではないので、それは変です。その訂正をした後、私が得られる出力は:

Name: Snooks 
Val: 1 

Name: blastman125 
Val: 1 

Name: Firebad 
Val: 1 

あなたは正しいでしょうか?

+0

@rcsnooksいいえ、私はしませんでした。あなたはあなたの投稿を編集しました。 – Chris

+0

@rcsnooks投稿したコードは、期待どおりに動作します。私が考えることができる唯一の説明は '$ _POST ['player_info']'はあなたが思うものではないということです。 – Chris

+0

@rcsnooksまた、ChromeとFirefoxの両方で、アラートボックスの内容をコピーして貼り付けることができます。 – Chris

関連する問題