/ / call form php una funzione all'interno di jquery [duplicato] - php, jquery

call form php una funzione all'interno di jquery [duplicate] - php, jquery

mi piacerebbe chiamare una funzione jquery da php. Ho provato in questo modo, ma le funzioni jQuery non vengono chiamate.

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 non è definito

come posso chiamare da PHP le funzioni all'interno di jQuery? Grazie!

risposte:

1 per risposta № 1

Il tuo problema è l'ambito JavaScript: la funzione che stai tentando di chiamare non è accessibile da qualsiasi luogo.

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

Ciò significa che non è possibile accedervi direttamente, tuttavia, se si posiziona la funzione all'esterno, funzionerà:

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

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

0 per risposta № 2

Php funziona sul server e javascript sul client, quindi la terminologia "chiama una funzione javascript" non è corretto.

È possibile impostare una variabile javascript con php, quindi verificare tale variabile con javascript sul client. Questo sarà rendi il tuo codice un po 'più semplice

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

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