2017-05-21 3 views
0

L'image 1 montre comment la page s'affiche lorsqu'elle est chargée par le navigateur. L'image 2 est lorsque l'élément de liste est double-cliqué. L'image 3 montre le résultat de cliquer sur le crayon (qui est l'élément de forme original). Vous pouvez voir que l'élément de liste a une valeur accessible car il imprime l'entier dans l'alerte, donc je ne suis pas sûr du commentaire ci-dessous concernant cela. Je ne comprends pas non plus comment il s'agit d'un doublon de la question précédente suggérée lorsque l'img est cliqué il vérifie la vérification logique de $ _POST ['edit']. S'il vous plaît ne marquez pas cela comme doublon comme ce n'est pas! Dans la réponse, ma question a été marquée comme un doublon, il est dit que "les éléments d'entrée img ne peuvent pas publier de données sur le serveur et doivent être placés dans un bouton". À mon avis, cela peut être incorrect, car mon page peut changer d'état en fonction du clic img s'il ne fournit pas de données via la poste, comment la variable POST peut-elle être définie par le clic img s'il ne peut pas transmettre les données au serveur. Si une question est marquée comme doublon alors la réponse originale doit adresser le même problème et/ou contenir l'information correcte si elle n'est pas alors je suis tombé cette question devrait être comme un original!Comment puis-je vérifier un formulaire javascript soumis à l'aide du POST global

when page loads

when double clicking li element

enter image description here

<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
</head> 

<body> 
<?php 
    if(isset($_POST['edit'])) 
    { 
    ?> 
    <p>window is in edit mode</p> 
    <?php 
    } 
    else 
    { 
    ?> 
    <p>window is not in any mode</p> 
    <form id="form-edit" method="POST" name="form-edit" action=" <?php echo $_SERVER['PHP_SELF']; ?>"> 
     <input type="image" id="edit-button" name="edit" value="1" src="../images/pencil.png" class="course-banner-edit"> 
    </form> 
    <?php 
    } 
    ?> 
    <script> 
     $(document).ready(function() { 

     /********************************************** 
     PROBLEM WITH THIS FUNCTION 
     **********************************************/ 
     $('li').dblclick(function() { 
      $('#form-edit').submit(); 
     /****************************************** 
     THE ALERT TRIGGERS AND THE VALUE IS REPORTED AS ONE WHICH IS CORRECT 
     *****************************************/ 
      alert($("input[name=edit]").val()); 
     }); 
    }); 
    </script> 
    </body> 
    </html> 
+1

Marcher dans l'eau dans votre code est impossible. Cliquez avec le bouton droit de la souris et afficher la source, copiez le code RENDU et utilisez l'éditeur de snippet '<>' pour afficher un [mcve] - N'oubliez pas de cliquer sur TIDY avant d'enregistrer – mplungjan

+0

Merci pour le conseil que j'ai supprimé tout le code inutile. Des idées comment je peux résoudre cela? – jon

Répondre

0

éléments d'entrée d'image du type ne pas accepter les attributs de valeur. essayer quelque chose comme ceci:

<form id="form-edit" method="POST" name="form-edit" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <button type="button"> 
     <img src="" alt=""> 
    </button> 
    <input type="hidden" name="edit" value="1"> 
</form> 

pour obtenir une meilleure compréhension sur la façon dont il fonctionne essayer de soumettre ce formulaire avec les différents boutons et de voir ce qui se passe

<html> 
<head> 
</head> 

<body> 
<?php var_dump($_POST); ?> 
<form id="form-edit" method="POST" name="form-edit" action="#"> 
    <input type="image" id="edit-button" name="first_submit_button" src="..."> 
    <input type="image" id="edit-button" name="second_submit_button" src="..."> 
    <input type="submit" value="third submit button"> 
</form> 

<ul> 
    <li>submit via javascript</li> 
</ul> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script> 
    $(document).ready(function() { 
    $('li').click(function() { 
     $('#form-edit').submit(); 
    }); 
    }); 
</script> 
</body> 
</html> 
+0

"les éléments d'entrée de type image n'acceptent pas l'attribut de valeur" - S'il vous plaît voir la photo au milieu- cela affiche la valeur de "1" en double-clique comment cela est-il compatible avec ce que vous avez dit? – jon

+0

Cette valeur ne sera pas envoyée au serveur. Les éléments d'entrée de type image sont utilisés pour créer des boutons de soumission graphiques. – jbe

+0

ok Je comprends maintenant, mais comment expliquez-vous le fait que lorsque la page se recharge après avoir cliqué sur le crayon, la variable POST est satisfaite? le contrôle satisfait est if (isset ($ _ POST ['edit'])) cela doit changer quelque chose à la fin du serveur – jon