从URL中提取消息并将其显示为HTML

时间:2015-05-26 07:21:12

标签: javascript php jquery html

我有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>

6 个答案:

答案 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)混合使用。