调用PHP函数并传递JavaScript变量

调用PHP函数并传递JavaScript变量,php,javascript,html,Php,Javascript,Html,我试图构建一个web应用程序,用户点击一个按钮,它会使用JavaScript提示功能提示他们输入电子邮件地址,如下所示 function mail_me(x) { var person = prompt('Please enter your email Address','emailme@me.com'); } 然后我想在JavaScript中调用PHP函数,并将person作为PHP函数的参数传递。有可能吗。到目前为止我已经试过了 function mail_me(x) {

我试图构建一个web应用程序,用户点击一个按钮,它会使用JavaScript提示功能提示他们输入电子邮件地址,如下所示

function mail_me(x)
{
        var person = prompt('Please enter your email Address','emailme@me.com');

}
然后我想在JavaScript中调用PHP函数,并将person作为PHP函数的参数传递。有可能吗。到目前为止我已经试过了

function mail_me(x)
{
        var person=prompt('Please enter your email Address','emailme@me.com');
            alert('<?php mail_tome('person'); ?>');
}
功能邮件(x)
{
var person=prompt('请输入您的电子邮件地址','emailme@me.com');
警报(“”);
}

这是不可能的,PHP在服务器上处理,而Javascript在服务器完成工作后在客户端呈现

您需要使用Ajax获取
person
的值,并通过Ajax将其传递回服务器上的php脚本,然后该脚本将处理您的请求


这是不可能的,PHP在服务器上处理,而Javascript在服务器完成工作后在客户端呈现

您需要使用Ajax获取
person
的值,并通过Ajax将其传递回服务器上的php脚本,然后该脚本将处理您的请求


您需要一种叫做AJAX的东西。如果您知道并使用JQuery,那么它已经为AJAX内置了功能

例如:

function mail_me() {
  var person = prompt('Please enter your email Address','emailme@me.com');
  $.ajax({
    type: 'post',
    url: URL TO YOUR SCRIPT,
    data: {
       email: EMAIL_VARIABLE
    },
    success: function(result) {
        //handle success
    }
  });
}

你需要一种叫做AJAX的东西。如果您知道并使用JQuery,那么它已经为AJAX内置了功能

例如:

function mail_me() {
  var person = prompt('Please enter your email Address','emailme@me.com');
  $.ajax({
    type: 'post',
    url: URL TO YOUR SCRIPT,
    data: {
       email: EMAIL_VARIABLE
    },
    success: function(result) {
        //handle success
    }
  });
}

这样的事是不可能的。PHP在服务器上执行,并将结果传递给浏览器

但是,您可以使用AJAX将变量发送到服务器。例如:

var a = new XMLHttpRequest();
a.open("POST","/path/to/script.php",true);
a.onreadystatechange = function() {
    if( this.readyState != 4) return;
    if( this.status != 200) return alert("ERROR "+this.status+" "+this.statusText);
    alert(this.responseText);
};
a.send("email="+person);

这将导致任何PHP脚本
echo
s到浏览器的内容出现在
警报中。当然,您可以随意定制,这只是一个基本示例。

这样的事情是不可能的。PHP在服务器上执行,并将结果传递给浏览器

但是,您可以使用AJAX将变量发送到服务器。例如:

var a = new XMLHttpRequest();
a.open("POST","/path/to/script.php",true);
a.onreadystatechange = function() {
    if( this.readyState != 4) return;
    if( this.status != 200) return alert("ERROR "+this.status+" "+this.statusText);
    alert(this.responseText);
};
a.send("email="+person);

这将导致任何PHP脚本
echo
s到浏览器的内容出现在
警报中。当然,您可以根据自己的喜好对其进行定制,这只是一个基本示例。

包含一个比jQuery效率高出许多倍的AJAX示例。@Kolink我必须仔细阅读一下。听起来很有趣。@PhilCross它实际上只是Javascript。包含一个比jQuery效率高很多倍的AJAX示例。@Kolink我必须仔细阅读一下。听起来很有趣。@PhilCross它实际上只是Javascript。你在任何地方都看到jQuery标记吗?这就是为什么在我的回答中我说如果他使用jQuery,只使用它的内置功能会更容易。。。在我的项目中,它就像
ajax(“somepage”{key:“value”,key2:“value2”},函数(r){alert(“dosomething!”;})一样简单。比jQuery简单得多。这叫做DIY函数。你在任何地方看到jQuery标记吗?这就是为什么在我的回答中我说如果他使用jQuery,只使用它的内置函数会更容易。。。在我的项目中,它就像
ajax(“somepage”{key:“value”,key2:“value2”},函数(r){alert(“dosomething!”;})一样简单。比jQuery简单得多。这称为DIY函数。在这种特定情况下,您可以使用回显(“警报(“”)。邮件('person')。“)”)。。但这是一种解决方法最好的方法是使用Ajax不要忘记php将生成HTML并将其返回给客户端。PHP在服务器上处理,最终信息返回给客户端。在这种特定情况下,您可以使用echo(“alert(“”)。mail_tome('person')。“)”)。。但这是一种解决方法最好的方法是使用Ajax不要忘记php将生成HTML并将其返回给客户端。PHP在服务器上处理,最终信息返回给客户端。