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

时间:2013-08-17 14:38:17

标签: php javascript ajax

我想在表单提交事件中从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本身设置,而不是表单值或其他东西。

4 个答案:

答案 0 :(得分:1)

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

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

  $.ajax(...);
});

答案 1 :(得分:1)

你可以使用:

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

答案 2 :(得分:0)

您可以使用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
  }
});

答案 3 :(得分:0)

请更改您的代码 -

<?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>