我有http://localhost/resume/Template/index.html?msg=Message%20Sent%20Successfully
如何提取消息“消息已成功发送并以此形式显示
”<form action="send_form_email.php" name="contactForm" method="post">
//I want to display the message here
<h4>E-mail</h4>
<div class="border-stripes">
<input type="email" class="textfield" name="email" placeholder="Your e-mail address" />
</div>
<h4>Message</h4>
<div class="border-stripes">
<textarea class="textarea" name="message" rows="3" placeholder="Your message"></textarea>
</div>
<br />
<br />
<input id="submit" name="submit" type="submit" value="Submit">
</form>
答案 0 :(得分:0)
这应该回应GET变量:
<?php echo urldecode($_GET['msg']); ?>
答案 1 :(得分:0)
如果您需要在php中执行此操作(请注意,XSS没有安全检查)
printf("Address of variable x is %p\n", (void *) &p);
否则在js
<form action="send_form_email.php" name = "contactForm" method="post">
<?php echo urldecode($_GET['msg']); ?>
<h4>E-mail</h4>
<div class="border-stripes"><input type="email" class="textfield" name="email" placeholder="Your e-mail address" /></div>
<h4>Message</h4>
<div class="border-stripes"><textarea class="textarea" name="message" rows="3" placeholder="Your message"></textarea></div><br /><br />
<input id="submit" name="submit" type="submit" value="Submit">
</form>
函数function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
var msg = getParameterByName('msg');
$( "form" ).prepend( "<p>"+msg+"</p>" );
取自here
答案 2 :(得分:0)
如果你想在javascript中执行此操作,那么你可以尝试解析查询字符串:
var query = (function() {
function decode(string) {
return decodeURIComponent(string.replace(/\+/g, " "));
}
var result = {};
if (location.search) {
location.search.substring(1).split('&').forEach(function(pair) {
pair = pair.split('=');
result[decode(pair[0])] = decode(pair[1]);
});
}
return result;
})();
$('form[name=contactForm]').prepend('<p>' + query['msg'] + '</p>');
答案 3 :(得分:0)
使用Javascript:
我已经记下了相同的功能,你可以访问URL的任何参数。
示例:
function getParamValue(name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(location.href);
if (results == null)
return "";
else
return decodeURI(results[1]);
}
alert(getParamValue('param'));
您的解决方案: http://jsfiddle.net/tb8cetLy/1/
答案 4 :(得分:0)
我猜你在send_form_email.php
// process form data
// redirect to index.html with $_GET['msg'] variable
如果您想要漂亮的网址,请使用下面的函数,将其包含在您的公共文件之上
session_start();
function flash_set($k,$v)
{
$_SESSION['flash'][$k] = $v;
}
function flash_get($k)
{
if(isset($_SESSION['flash'][$k]))
{
$msg = $_SESSION['flash'][$k];
unset($_SESSION['flash'][$k]);
return $msg;
}
return '';
}
将send_form_email.php
更改为不带$_GET
参数的重定向,处理完表单后,
// process form data
flash_set('form','Message Sent Successfully');
// redirect here
现在,在您的表单中使用它,
<form action="send_form_email.php" name="contactForm" method="post">
<?php echo flash_get('form')?> // I want to display the message here
<h4>E-mail</h4>
Flash消息只会在重定向后显示一次,如果用户刷新页面,它就会消失!!
答案 5 :(得分:-1)
仅在HTML / PHP中,您可以使用urldecode($_GET['msg'])
您也可以使用javascript执行此操作,例如:
function getQuerystring(key, default_) {
if (default_==null) default_="";
key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
var qs = regex.exec(window.location.href);
if(qs == null)
return default_;
else
return qs[1];
}
此功能允许您使用var msg = getQuerystring("msg");
获取消息,并且可以将其与unescape函数(http://www.w3schools.com/jsref/jsref_unescape.asp)混合使用。