我有这段代码:
<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}}我得到一个空数组..请帮忙吗?
答案 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请求。
在“父”窗口和会话中弹出数据($_SESSION
,http://hr.php.net/manual/en/reserved.variables.session.php)。