J'ai une petite fonction qui prend une liste dynamique de zones de texte avec des URL et l'envoie au serveur. J'essaye de charger les URLs dans un tableau puis de les transmettre dans un objet JSON. Le problème est, quand j'arrive à ce moment-là dans le code, je continue à obtenir l'erreur:javascript Variable indéfinie/tableau
TypeError: url_data[this_url] is undefined
http://localhost/2011/admin/public/assets/js/tssol.ui.js
Line 196
Voici le bloc qui retourne cette erreur:
$("#dialogEditor").dialog('option', 'buttons', {'Save' : function() {
/* Define variables */
var url_data = new Array();
var this_url = 0;
/* I've tried this with and without explicitly passing the vars... */
$("#website_editor input").each(function(url_data, this_url) {
var id =$(this).attr('name').match(/\d+/);
var url=$(this).val();
/* Test the varible each iteration */
console.log("this_url: " + this_url + " id: " + id + " url: " + url);
/* Line 196 */ url_data[this_url].id = id;
url_data[this_url].url = url;
this_url++;
});
data = JSON.stringify(url_data);
//data = url_data;
//console.log(data);
$.ajax({
url: 'ajax.websites.php',
dataType: 'json',
data: {
action: "update_resort",
ResortId: resort,
data: data
}
});
$(this).dialog("close");
},
'Cancel': function(){$(this).dialog("close");
}});
},
Désolé au sujet de la mise en forme
Qu'essayez-vous d'obtenir? 'this_url' est l'élément d'entrée dans' .each', donc vous ne pouvez pas l'utiliser comme une clé dans le tableau. – pimvdb
Si 'url_data [this_url]' n'existe pas encore, vous ne pouvez pas mettre la propriété 'id' dessus ... vous devez d'abord assigner un objet à' url_data [this_url] '. –