/ / call form php una función dentro de jquery [duplicado] - php, jquery

call form php a function dentro de jquery [duplicate] - php, jquery

Me gustaría llamar a una función jquery desde php. Lo intenté de esta manera, pero las funciones jquery no se llaman.

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 no está definido

¿Cómo puedo llamar desde PHP las funciones dentro de jQuery? ¡Gracias!

Respuestas

1 para la respuesta № 1

Su problema es el alcance de JavaScript: la función a la que intenta llamar no es accesible desde todas partes.

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

Eso significa que no puede acceder a él directamente. Sin embargo, si coloca la función fuera, funcionará:

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

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

0 para la respuesta № 2

Php se ejecuta en el servidor y javascript en el cliente, por lo que la terminología "llamar a una función javascript" Es incorrecto.

Puede establecer una variable javascript con php y luego probar esa variable con javascript en el cliente. Esta voluntad Haz tu código un poco más simple

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

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