$_POST数组为空

3

i have this code:

<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进入新页面时,我想要访问该值...我的表单是“post”方式提交的,当我执行print_r($_POST['message'])时,我得到一个空数组,请帮忙解决?
4个回答

7
通过使用window.location.href,您可以更改要访问的链接(通过刷新页面到所需的页面,该页面从URL获取一个id)。 如果您想要发布值,请使用document.MyForm.submit(); 编辑: 显然,您需要添加一个正常的<form>标签,而不仅仅是空的。 为其添加名称/ID,以便您可以使用JS +方法post +操作作为URL来引用它。

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' />

要通过POST发送数据,您需要将其指定为from属性、方法和操作。@Helloise - Ibu
谢谢,但我还需要发送我的邮件地址... 我该如何将它加入到action='http://www.rainbowcode.net/apps_dev.php/profiles/mail?mailid=....'中呢? 谢谢 - charlie_cat

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'])


我添加了这个,但似乎没有任何区别..其中SCRIPT_NAME应该是我的脚本名称吗? - charlie_cat
@Helloise Smit:是的,SCRIPT_NAME 是你脚本的名称,但是看了你的 JavaScript 代码,我有一种你想通过进行 GET 请求来将表单提交到另一个页面的印象。很难确定你的实际意图... - stealthyninja
好的,我已将其设置为我的脚本名称。Mailid是一个全局变量,我在另一个JS函数中设置它,并且当我重定向到新页面时,它包含正确的ID。我只想访问用户在<textarea>中输入的消息。 - charlie_cat

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接