11499 sujets

JavaScript, DOM et API Web HTML5

Slt,

Je souhaites uploader sans recharger la page.
J'ai trouver un petit script http://tutorialzine.com/2013/05/mini-ajax-file-upload-form/
L'appel se fait sur l'attribut id du form.
Exemple :
index.html
<form id="upload" method="post" action="upload.php" enctype="multipart/form-data">
<a>Browse</a>
<input type="file" name="upl" multiple />
</form>


script.js
$(function(){
...
    $('a').click(function(){
        // Simulate a click on the file input button
        // to show the file browser dialog
        $(this).parent().find('input').click();
    });
    // Initialize the jQuery File Upload plugin
    $('#upload').fileupload({


Mon soucis, j'ai besoin de mettre ce form x fois dans la page.
Problème évident comme l'id est identique (upload), seul le premier form fonctionne.

J'ai penser ajouter un identifiant à l'id upload : upload1
et ce même chiffre à la balise a :
<a id="1">Browse</a>
.

On voit dans le script.js que la function est utilisée au clic sur "a".
Comment lui dire de prendre l'id de la balise a pour l'ajouter au 'upload' :
exemple :
$(function(){
	var idSection;

...
    $('a').click(function(){
    idSection = $('a').attr('id');
...
    });

    $('#upload' + idSection).fileupload({


Sauf que ça ne fonctionne pas.
Si je met
$(function(){
	var idSection;

...
    idSection = 1;

    $('a').click(function(){
...
    });

    $('#upload' + idSection).fileupload({


Ca fonctionne, mais là comment récupérer l'id du a vu qu'il est avant la function click ?

Evidement si vous avez autre chose de plus simple, je suis preneur. Smiley smile
Merci.
Modifié par Ehplod (06 May 2014 - 10:15)
salut,
je ne pense qu'un ID puisse commencer par un nombre ou ne contenir qu'un nombre. Par conséquent <a id="1"> est faux.
Je pense que le plus simple serait d'utiliser ".parentNode" ?
Le mieux aussi serait de passer par un <input type=submit> au lieu d'un simple lien et l'écoute se ferait "onsubmit" et non "onclick".