<?
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变量的正确值。有没有办法做到这一点????似乎当我的动作是在同一页面时,我无法得到我的变量。请帮帮我!!!
答案 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)
这不是表单的工作方式。只有表单元素的内容才会发送到服务器,由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
}