Php 提交表单并使用值(JavaScript)

Php 提交表单并使用值(JavaScript),php,javascript,ajax,onclick,buttonclick,Php,Javascript,Ajax,Onclick,Buttonclick,如何在javascript中使用表单“提交”的值 事实: 这是一个PHP文档 我之所以使用JavaScript,是因为我需要一些我认为无法从服务器端脚本获得的时间因素:) 简化;我想要的是,当提交此表单或单击按钮时: <form method="POST" action="test.php"> <input type="text" name="foo" size="30"> <input type="submit" value="Click me"> //it

如何在javascript中使用表单“提交”的值

事实:
这是一个PHP文档
我之所以使用JavaScript,是因为我需要一些我认为无法从服务器端脚本获得的时间因素:)

简化;我想要的是,当提交此表单或单击按钮时:

<form method="POST" action="test.php">
<input type="text" name="foo" size="30">
<input type="submit" value="Click me"> //it doesn't have to be submitted
<input type="button" action="some_action" value="Click me"> //an alternative solution
</form>

//它不必提交
//另一种解决办法
名为“foo”的文本输入值显示在其他位置

注意表单不必提交,我真正想要的是,当您按下按钮时,该值可以在其他地方使用


我应该用GET来代替吗?我可以使用$\u POST数组吗?我应该使用AJAX吗(我对AJAX毫无用处)?在这种情况下,我不知道该怎么办。

您可以从服务器端的
$\u POST
$\u REQUEST
数组中读取值,并将其插入到您喜欢的任何输出中—如果您愿意,甚至可以插入javascript内部。例如:

<?php
$myValue = $_POST['foo'];
?>
<script type="text/javascript"><!--
function writeMyValue() { document.write('<?php echo $myValue; ?>'); }
// --></script>

因为您提到它并不完全取决于表单是否提交,所以更容易捕获不发布/获取表单的值。在正文部分编写接口逻辑后,需要在结尾的页脚页中编写以下代码:-

anypage.php
:-

<form method="POST" action="test.php">
  <input type="text" name="foo" id="foo" size="30" />
  <input type="submit" onclick="return writeFoo('foo_placeholder', 'foo');" value="Click me" /> //it doesn't have to be submitted
  <input type="button" onclick="return writeFoo('foo_placeholder', 'foo');" action="some_action" value="Click me" /> //an alternative solution
</form>
<div>
    <span id="foo_placeholder"></span>
</div>
<script type="text/javascript"><!--
function writeFoo(arg, source) {
    if(document.getElementById(arg) != null) {
        document.getElementById(arg).innerHTML = document.getElementById(source).value;
    }
}
// --></script>
上面的HTML代码可以用于任何面板,但在向用户显示“anypage.php”页面时必须包含。这是因为在调用“foo”元素时,占位符元素必须存在。请注意在本页的“
writefo()
”函数调用时间和中使用相同的ID

footer.php
:-

<form method="POST" action="test.php">
  <input type="text" name="foo" id="foo" size="30" />
  <input type="submit" onclick="return writeFoo('foo_placeholder', 'foo');" value="Click me" /> //it doesn't have to be submitted
  <input type="button" onclick="return writeFoo('foo_placeholder', 'foo');" action="some_action" value="Click me" /> //an alternative solution
</form>
<div>
    <span id="foo_placeholder"></span>
</div>
<script type="text/javascript"><!--
function writeFoo(arg, source) {
    if(document.getElementById(arg) != null) {
        document.getElementById(arg).innerHTML = document.getElementById(source).value;
    }
}
// --></script>

此页面应包含上述JS代码,其中包含“
writefo()
”函数的定义

编辑,如@Latze:-
请参见,您可以将该“
rightpart.php
”页面包含在“
anypage.php
”页面的同一块中,或包含在任何其他页面的任何块中(如“
header.php
”/“
footer.php
”页面)。但主要的逻辑是,当您查看特定页面时(在本例中,这意味着当您查看“
anypage.php
”页面时),源ID(获取值的位置)和目标/占位符ID(显示值的位置)都必须存在


希望有帮助。

PHP在服务器上运行。JavaScript在浏览器上运行。这两种语言互不交谈;它们甚至不会同时运行,更不用说在同一台机器上了。一旦用户提交表单,浏览器就会从服务器请求
test.php
,当前页面、脚本和所有内容将永远消失

很难准确地确定您想要做什么,因此我将向您提供一些一般性提示:

  • JavaScript可以拦截表单提交。您需要将
    onsubmit
    事件处理程序附加到
    元素。分配给事件的函数可以执行任何需要的操作,然后返回
    true
    (并让提交继续)或返回
    false
    (并取消提交)

  • JavaScript几乎可以读取和写入任何页面元素。您需要使用所谓的DOM方法

  • PHP可以生成您需要的任何内容,包括HTML输入字段

例如:

<?php

$foo_value = date('Y-m-d H:i:s');

?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
<script type="text/javascript"><!--
window.onload = function(){
    var documentForms = document.getElementsByTagName("form");
    for(var i=0, len=documentForms.length; i<len; i++){
        documentForms[i].onsubmit = function(e){
            var currentForm = e.target;
            var fooValue = currentForm.elements.foo.value;

            var p = document.createElement("p");
            p.appendChild(document.createTextNode("Aborted submission: " + fooValue));
            currentForm.appendChild(p);

            return false;
        };
    }
};
//--></script>
</head>
<body>

<form method="POST" action="test.php">
<input type="text" name="foo" value="<?php echo htmlspecialchars($foo_value) ?>" size="30">
<input type="submit" value="Tryk her">
</form>

</body>
</html>

分配事件处理程序时,规范要求无论何时调用函数,它都会收到一个作为其第一个参数的。该对象表示触发函数调用的事件,可用于获取其他信息,例如。在函数中如何调用它并不重要;我使用
e
是因为我从来不知道如何命名东西:)

它也需要提交吗?不,事实上,我的表述很糟糕:)我想要的是,当你按下按钮或提交按钮时,值会显示在别处:)我会立即编辑!谢谢,这真的很有帮助!有一点我不明白(我对脚本编写和所有方面都很陌生):submit函数表单中的参数“e”-何时/何地传递给函数,如果你知道我的意思的话?:)如果你能给我解释一下var currentForm=e.target?那太好了:)谢谢,非常有用:)我如何确保“anypage.php”和“rightpart.php”同时显示?:)把他们包括在同一个街区?这可能吗?:)