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 № 1Su 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();
}