$ _POST数组为空

时间:2011-05-23 09:14:08

标签: php javascript html

我有这段代码:

<div id="messageDiv">
<form>
<textarea name="message" rows="10" cols="20" id="message"></textarea></textarea>
<br /><br />
<input type="submit" value="Send" onClick="return sendmail()">
<input type="reset" value="Reset" name='reset'>
</form>
</div>

然后我有我的JS:

function sendmail()
{
  var mail = document.getElementById('message').value;
  window.location.href = "http://www.rainbowcode.net/apps_dev.php/profiles/mail?id="+mailid;
  return false;
}

当我alert(mail)我得到正确的值,但是当我通过window.location.href到达我的新页面时,我想要访问该值...当我执行{我的表格是一个“帖子”时{ {1}}我得到一个空数组..请帮忙吗?

4 个答案:

答案 0 :(得分:7)

通过使用window.location.href,您只需更改您要访问的链接(通过将页面刷新到所需页面,在您的情况下,该页面是从URL获取ID的页面)。 如果您想发布值,请使用document.MyForm.submit();

编辑: 显然,你必须添加一个普通的<form>标签,而不仅仅是一个空标签。 添加一个名称/ ID,以便您可以使用JS +方法post + action作为URL来引用它。

答案 1 :(得分:0)

你的html中有可能影响它的错误

<textarea name="message" rows="10" cols="20" id="message"></textarea></textarea>

应该是

<textarea name="message" rows="10" cols="20" id="message"></textarea>

这也不是表格的完成方式。发送邮件功能根本没有帮助

<form method='post' action='http://www.rainbowcode.net/apps_dev.php/profiles/mail'>
   <textarea name="message" rows="10" cols="20" id="message"></textarea>
   <br /><br />
   <input type="submit" value="Send">
   <input type="reset" value="Reset" name='reset'>
</form>

这应该有效

更新:

您始终可以添加可用于不同目的的隐藏值,而不会在表单中显示。与您的邮件ID一样,它也可以添加到表单中:

<input name='mailid' type='hidden' value='somevalue' />

答案 2 :(得分:0)

您的form未设为post

将您的HTML代码更新为:

<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">


<小时/> 的更新

function sendmail()
{
  var mail = document.getElementById('message').value;
  window.location.href = "http://www.rainbowcode.net/apps_dev.php/profiles/mail?id="+mailid;
  return false;
}

mailid在哪里定义?另外,您是否尝试在重定向到JavaScript的页面中print_r($_POST['message'])?请改为print_r($_GET['id'])

答案 3 :(得分:0)

这很明显。您打开的弹出窗口不包含与打开它的“父”页面相同的请求变量。这是一个新的HTTP请求。

在“父”窗口和会话中弹出数据($_SESSIONhttp://hr.php.net/manual/en/reserved.variables.session.php)。