使用ajax

时间:2017-12-19 20:20:45

标签: javascript php html ajax

我需要能够将JavaScript变量发送到PHP函数。我能够让它适用于硬编码值,如下面的代码。

<button onclick="submitform()">Click me</button>
<script>
    function submitform(){
      document.write(' <?php send_mail('hello'); ?> ');
    }
</script>

<?php
    function send_mail($subject){
        //$subject => 'hello'
        //Do something with subject
    }
?>

但是,我无法用变量替换硬编码值。我还想找到另一种发出PHP函数调用的方法。我相信解决方案在于ajax请求。我现在找不到直接嵌入PHP代码的方法。所有其他的例子我都无法工作。如果可能的话,我也会很感激。谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用表单执行此操作:

 <form action="send_mail.php" method="post">
         <input type="text"  id="mail" name = "mail">
        <input type="submit" class="btn" value="Send Mail">
    </form>

然后你可以使用send_mail.php页面上的$ _POST [&#34; mail&#34;]来访问邮件

另一种方法是ajax:

$.ajax({ url: '/send_mail.php',
         data: {action: 'sendEmail', mymail:$('#mail').val()},
         type: 'post',
         success: function(output) {
                      alert(output);
                  }
});

然后在send_mail.php页面中你可以这样做:

 if(isset($_POST['action']) && !empty($_POST['action'])) {
        $action = $_POST['action'];
    $mail = $_POST['mymail'];

        switch($action) {
            case 'sendEmail' : send_email();break;
            // ...etc...
        }
    }

同一页面调用的演示:

<?php

if(isset($_GET['action'])=='myfunc') {
    echo  "Hello";
}
?>

<form action="?action=myfunc" method="post">
    <input type="text"  id="mail" name = "mail">
    <input id="clickMe" type="submit" value="clickme"/>