在jquery中调用form PHP函数


call form php a function inside jquery

我想从php调用jquery函数。我尝试了这种方式,但没有调用jquery函数。

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 is not defined

如何从php调用jquery中的函数?谢谢!

你的问题是JavaScript作用域:你试图调用的函数不能从任何地方访问。

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

这意味着你不能直接访问它。但是,如果您将函数放在外部,它将工作:

function reset_fields() {
    // now this function is globally accessible from anywhere
}
$(function() {
    // you can still call reset_fields() from here
}

Php在服务器上运行,javascript在客户端上运行,所以术语"调用javascript函数"是不正确的。

你可以用php设置一个javascript变量,然后在客户端用javascript测试这个变量。这将使您的代码更简单一些

 var postId = '<?php echo $_POST["id"] ?>';
 if( postId === '1'){
  reset_field();
 }
 else {
  reset_field();
 }