/ / call form php une fonction dans jquery [duplicate] - php, jquery

forme d'appel php une fonction dans jquery [duplicate] - php, jquery

je voudrais appeler une fonction jquery de php. J'ai essayé de cette façon, mais les fonctions jquery ne sont pas appelées.

jq.action.js

$(function() {

$("#reset" ).click(function(e){
e.preventDefault();
reset_fields();
});

function reset_fields(){
$(":input").prop("selectedIndex", 0);
}

function error_msg(){
alert("Error");
}

});

index.php

<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="jq.action.js"></script>

<?php
if ($_POST["id"] == "1") {

echo "<script>reset_fields();</script>";

} else {

echo "<script>error_msg();</script>";
}
?>

ReferenceError: reset_fields n'est pas défini

comment puis-je appeler depuis php les fonctions de jquery? Merci!

Réponses:

1 pour la réponse № 1

Votre problème est la portée de JavaScript: la fonction que vous essayez d’appeler n’est pas accessible de partout.

$(function() {
function reset_fields(){
// this function is only accessible to things inside $(function(){...
}
}

Cela signifie que vous ne pouvez pas y accéder directement. Toutefois, si vous placez la fonction à l'extérieur, cela fonctionnera:

function reset_fields() {
// now this function is globally accessible from anywhere
}

$(function() {
// you can still call reset_fields() from here
}

0 pour la réponse № 2

Php fonctionne sur le serveur et javascript sur le client, donc la terminologie "appeler une fonction javascript" est incorrect.

Vous pouvez définir une variable javascript avec php puis la tester avec javascript sur le client. Cette volonté simplifiez un peu votre code

 var postId = "<?php echo $_POST["id"] ?>";

if( postId === "1"){
reset_field();
}
else {
reset_field();
}