【问题标题】:Inserting the value of a java script variable into a php variable [duplicate]将java脚本变量的值插入php变量[重复]
【发布时间】:2013-07-31 18:41:34
【问题描述】:

我已经看到很多关于将 php 值放入 javascript 变量的问题,但是我还没有看到任何将 javascript 变量放入 php 变量的问题。所以我的问题是有没有办法做到这一点,如果有,你能帮助我或至少为我指明正确的方向。

到目前为止我的代码是这样的:

<script>
function CheckForm()
{
var inputElement = document.getElementsByTagName("input");

if((inputElement[0].value !=="first" && inputElement[0].value !=="") && 
    (inputElement[1].value !=="Initial" && inputElement[1].value !=="") && 
    (inputElement[2].value !=="last" && inputElement[2].value !=="") && 
    (inputElement[3].value !=="someone@example.com" && inputElement[3].value !=="") && 
    (inputElement[4].value !=="") && 
    (inputElement[5].value !=="#" && inputElement[5].value !=="") && 
    (inputElement[6].value !=="Lot" && inputElement[6].value !=="") && 
    (inputElement[7].value !=="Evt. Name" && inputElement[7].value !=="") && 
    (inputElement[8].value !=="xx/xx/xxxx" && inputElement[8].value !=="") && 
    (inputElement[9].value !=="xx/xx/xxxx" && inputElement[9].value !=="") && 
    (inputElement[10].value !=="xx:xx" && inputElement[10].value !=="") &&
    (inputElement[11].value !=="") &&
    (inputElement[12].value !=="xx:xx" && inputElement[12].value !=="") &&
    (inputElement[13].value !=="") &&
    (inputElement[14].value !=="") &&
    (inputElement[15].value !=="") &&
    (inputElement[16].value !=="x.xHours/Time Range" && inputElement[16].value !==""))
{
    SendMail();
}
else
{
    alert("One or more fields were not filled in correctly. Please try again.");
}
}

function GetBody()
{
var inputElement = document.getElementsByTagName("input");
var addInfo = document.getElementsByTagName("textarea");
var msg = "";

var line1= ("First Name: " + inputElement[0].value);
var line2= ("Middle Initial: " + inputElement[1].value);
var line3= ("Last Name: " + inputElement[2].value);
var line4= ("Email: " + inputElement[3].value);
//OTHER LINES OF MESSAGE HERE

msg = (line1 + "\n" + line2 + "\n" + line3 + "\n" + line4 + "\n" + line5 + "\n" + line6 + "\n" + line7 + "\n" + line8 + "\n" + 

line9 + "\n" + line10 + "\n" + line11 + "\n" + line12 + "\n" + line13 + "\n" + line14 + "\n" + line15 + "\n" + line16 + "\n" + 

line17);
return msg;
}

function SendMail()
{
    var to = "someone@something.com"
    var from = document.getElementsByTagName("input")[3].value;
    var subject = "Parking Lot Request";
    var msg = GetBody();

<?php 
$to = "GET to";
$subject =  "GET subject";
$message =  "GET msg";
$from =  "GET from";
$headers = "From: " . $from;
mail($to, $subject, $message, $headers);
mail($from, $subject, $message, $headers);
echo "Request has been sent. Also a copy has been sent to you.";

?>    
}
</script>

【问题讨论】:

  • 除非我缺少某些东西,否则我不想使用表单,因为我已经发现这是一种可能的解决方案,但是我假设的 post 功能就是为什么你从什么指向我我知道需要 HTML5。但我也需要与旧浏览器兼容。可能我应该在原帖中提到。
  • @Dylan — 没有人提到 HTML 5 中引入的任何内容。
  • @Quentin 够公平的。删除我的评论。
  • @Quentin 有人在表单上发布了关于 w3schools 页面的链接,该页面使用带有属性 method="post" 的 html 标记表单,从我在 html 表单页面上看到的内容来看html5 中的新功能。在我发表评论之前,那个人显然删除了该帖子。
  • @Dylan — 表格是an HTML 2 thing

标签: php javascript html


【解决方案1】:

如果您试图在同一页面上完成所有操作,则无法完成。 php 在页面到达您的浏览器之前运行并呈现为 HTML 和 Javascript,因此您的浏览器不可能更改同一页面上的 PHP 变量。

现在,您绝对可以向服务器上的另一个甚至相同的 PHP 页面发送 AJAX 请求,但是 PHP 也会在您在浏览器中看到结果之前运行并完成。你想让 PHP 做的任何事情都涉及从 Javascript 获取变量,你必须使用 AJAX。

【讨论】:

  • 谢谢,这就是我一直在寻找的答案...去研究 ajax...还有其他人想把头撞到墙上...或键盘吗?
  • 如果你正在研究 AJAX,我肯定会看看 w3schools 教程(尽管这里有很多人说),然后看看 jQuery 的 ajax 函数。一旦您真正了解幕后发生的事情,jQuery 将为您简化它。
猜你喜欢
  • 2017-09-11
  • 2017-07-14
  • 2014-02-14
  • 2011-08-24
  • 1970-01-01
  • 2011-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多