如何在表单提交事件中从PHP调用javascript函数


How to call a javascript function from PHP at form submit event

我想在表单提交事件中从php调用一个javascript函数。javascript函数将访问php变量,并使用ajax将它们发送到另一个网站上的php脚本。以下代码只是一种表示形式。

<?php
....
.....
......
if($_POST["action"]=="xyz"){
$myname = "asim";
    echo "<script type='text/javascript'>submitform();</script>";
}
.....
....
...
gotoanotherpagefinally();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
    function submitform(){
        alert("<?php echo $myname; ?>");
        $.ajax({
                type: 'POST',
                data: {
                    action: 'whatever',
                    fileID: "<?php echo $myname; ?>",
                },
                url: 'http://xyz.com/API/query.php'
            });
    }
</script>
</head>
<body>
<form id="myform">
  ------
  ------
<input type="submit" name="submit_details">
</form>
</body>
</html>

我需要从php调用javascript函数,因为js函数使用的php变量只由php本身设置,而不是表单值或其他什么。

您可以使用jQuery:捕获submit事件

$("#myform").submit(function(e) {
  // needed so the default action isn't called 
  //(in this case, regulary submit the form)
  e.preventDefault(); 
  $.ajax(...);
});

您可以使用:

<form id="myform" onsubmit="submitform()">

您可以使用jQuery来完成此操作。

$(':input').click(function(){});

然后在这个函数中,您可以使用ajax请求将变量发送到您所拥有的php页面。

var variableA, variableB; // variables to be initiated by an ajax request
// ajax request to get variables from php page
$.ajax(
{
  url:'php_page_path/source_page.php',
  data:"message=getVars",
  type: 'post',
  success: function(data){
  // use the data from response
    var obj = JSON.parse(data);
    variableA = obj.varA;
    variableB = obj.varB;
  }
});

// use the variables in this ajax request and do what you want
$.ajax(
{
  url:'php_page_path/page.php',
  data:"var1="+variableA+"&variableB="+vaiableB ,
  type: 'post',
  success: function(j){
    // use the data from response
  }
});

请更改您的代码-

<?php
   $myname="asim";
?>
<script type="text/javascript">
    function submitform(myname){
        alert(myname);
        $.ajax({
                type: 'POST',
                data: {
                    action: 'whatever',
                    fileID: myname,
                },
                url: 'http://xyz.com/API/query.php'
            });
    }
</script>

HTML

<form id="myform" onsubmit="submitform('<?php echo $myname;?>')">
  ------
  ------
  <input type="submit" name="submit_details">
</form>