在jquery里面调用php一个函数

时间:2014-05-31 11:06:05

标签: php 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

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

2 个答案:

答案 0 :(得分:1)

您的问题是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
}

答案 1 :(得分:0)

Php在客户端上运行服务器和javascript,因此术语&#34;调用javascript函数&#34; is incorrect

您可以使用php设置javascript变量,然后在客户端上使用javascript测试该变量。这将是make your code a bit simpler

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

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