如何从php中的表单中获取值

时间:2011-02-22 00:08:20

标签: php

<? 
   if('POST' == $_SERVER['REQUEST_METHOD']
   {
       $_SESSION['update'] = trim($_POST("wasUpdateClicked")_;
   }
   $wasUpdatedClicked = $_SESSION['wasUpdatedClicked'];
   if(isset($wasUpdateClicked))
   {
      ..do something here like an update method
   }
?>
<form name="x" method="post" action="samePage.php">
      ...do some stuff here that isnt important
   <input type="submit" value="update" onclick="$wasUpdateClicked = 2" />
</form>

我的牛肉是我无法获得wasUpdateClicked变量的正确值。有没有办法做到这一点????似乎当我的动作是在同一页面时,我无法得到我的变量。请帮帮我!!!

4 个答案:

答案 0 :(得分:2)

$_POST是一个变量,而不是一个函数。

下标就好......

$var = $_POST['wasUpdateClicked'];

另外,我通常会发现检查POST时更容易if ( ! empty($_POST)) { ... }

要使用$_SESSION,您需要先调用session_start()

这一行有几个问题......

<input type="submit" value="update" onclick="$wasUpdateClicked = 2" />

你不能用PHP做到这一点。我认为你将JavaScript与PHP混淆(但仍然是JavaScript的糟糕做法)。

答案 1 :(得分:1)

除了@alex's answer

这不是表单的工作方式。只有表单元素的内容才会发送到服务器,由name标识。

所以这个

<input type="submit" value="update" onclick="$wasUpdateClicked = 2" />

只会将JavaScript变量$wasUpdateClicked设置为2。这只发生在客户端。该值永远不会发送到服务器。

您需要一个表单元素,例如:

<input type="text" name="wasUpdateClicked" value="2" />
<!-- or type="hidden" -->

并且可能使用JavaScript更新此值。或者如果你真的想要计算表单提交的数量,你可以使用$_SESSION在服务器端计算它们(只是有一个总是发送2的表单元素似乎有点无用)。

你应该阅读variables from external sources并描述你真正想做的事情。

答案 2 :(得分:0)

你应该替换

 <input type="submit" value="update" onclick="$wasUpdateClicked = 2" />  

通过

<input type="hidden" name="wasUpdateClicked" value="2"/>  
<input type="submit" value="update"/>  

并在乞讨。你的脚本,用

获取发布的值
$wasUpdatedClicked = $_POST['wasUpdateClicked'];  

答案 3 :(得分:0)

有很多方法可以做到这一点。以下是一些应该有所帮助的提示。

如果为按钮指定名称,则其值将是$ _POST数组的一部分。

 <input type="submit" name="submit" value="update"></input>
 <input type="submit" name="submit" value="submit"></input>

根据用户点击的按钮,$_POST['submit']将“更新”或“提交”。

另一种方法是在onclick函数中设置隐藏输入的值。

<input type="hidden" id="action" name="action" value="">
<input type="submit" value="update" onclick="document.getElementById('action').value = 'update'" />

然后,$_POST['action']如果点击更新按钮,则会“更新”。

要点击更新按钮进行更新,请执行以下操作:

if (isset($_POST['action']) && $_POST['action'] == 'update')
{
    // do your update
}