5568 sujets

Sémantique web et HTML

Bonjour à tous et à toute, avant tout, je suis désolé si je post mon problème dans le mauvais forum, mais comme il y a plusieurs langage je ne savais pas le quelle choisir (bien que mon bouton soit de l'HTML le souci est peut être ailleur).

Alors voilà le problème, je cherche à différencier plusieurs bouton submit pour un seul formulaire, mais voilà, seul la valeur du premier bouton est prit en compte.

Voilà comment je vois la chose, j'affiche plusieurs image et textarea (la valeur est contenu dans une BD) et pour chaque image je génère un bouton avec comme valeur l'ID de celle-ci afin de pouvoir la modifier

Voici le code


<?php
require_once('../../../../../init.php');
mysql::Connect();  
 
 
if(Utilisateur::isAuth()== 1)
{
     $titre=mysql::query('SELECT * FROM accueil'); 
     ?>
      <form class="form-horizontal" role="form" method="post" id="form">
      <br>
     <?php
     $e=0;
     while ($donne = $titre->fetch())
        {
        $e++;
        ?>
         
        <div class="col-md-3 ">
            <center><img src="images/accueil/<?php echo $donne['image']; ?>" alt="Image d'accueil" class="acc"/>                   
            <div>      
                <br>
                <br><textarea style="width: 350px;" class="form-control" rows="5" name="description" id="des"><?php echo $donne['texte']; ?></textarea>                 
            </div>
            <br>
              <input type="hidden" id="modif" value="<?=$donne['id']; ?>">
            <button type="submit" class="btn btn-success" id="modifier" value="<?=$donne['id']; ?>">Modifier(<?=$donne['id']; ?>)</button>
            </center>
       </div>
             
        <?php
        }
        ?>
               </form>
        <?php
}
else
{
     
}
?>


Valeur que je récupère ensuite un peut plus bas


<script type="text/javascript" charset="utf-8">
$('#form').submit(function() {
var image = $('#modif').val(); 
var save = new Object(); 
save.image = image; 
alert(save.image);
$.post('teste.php', save).always(function(arg) { 

notif("Votre image à bien été enregistré", "success", "", "");
setTimeout(function(){actualise();}, 2000);
function actualise()
{
var url = "<a href="">http://"+location.hostname</a>;
location.assign(url);
} 
});

return (false);
}); 
</script>


j'ai bien pensé à insérer un Onclick dans mon bouton pour pallier à ce problème, mais avant j'aurai voulu savoir si il y avais la possibilité de faire fonctionner le code ci-dessu (je préfère ce code niveau lisibilité).

Donc si quelqu'un saurait me dire comment le faire fonctionner, cela serait nickel.

Merci.
Modifié par ascii (28 Nov 2016 - 16:46)
Modérateur
Bonjour,

il y a pas mal de problèmes dans le javascript, mais quelque chose me chiffone:

Ce script soumet le formulaire en ajax, affiche un message de succès quel que soit la réponse (déjà c'est un problème), et recharge la page deux seconde après. Je ne comprends pas bien l'intérêt de l'ajax du coup.

Ce ne serait pas plus simple du coup de faire un bon vieux submit sans javascript?
En faite, la page se recharge pour afficher la nouvelle image, pour le message de réussite rassure toi il ne s'affiche pas quelque sois la réponse, l'erreur, si il y a, est géré dans la page de destination.

Sinon j'ai pu résoudre mon problème en modifiant :

<button type="submit" class="btn btn-success" id="modifier" value="<?=$donne['id']; ?>">Modifier(<?=$donne['id']; ?>)</button>


par

<button type="submit" class="btn btn-success" id="modif<?=$donne['id']; ?>" value="<?=$donne['id']; ?>">Modifier</button> 


et

var image = $('#modif').val();


par

var image = $("[type=submit]:focus").val();



voilà voilà