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();
});
@rcsnooksいいえ、私はしませんでした。あなたはあなたの投稿を編集しました。 – Chris
@rcsnooks投稿したコードは、期待どおりに動作します。私が考えることができる唯一の説明は '$ _POST ['player_info']'はあなたが思うものではないということです。 – Chris
@rcsnooksまた、ChromeとFirefoxの両方で、アラートボックスの内容をコピーして貼り付けることができます。 – Chris