是否可以在表单提交后使用get方法检索表单中的自定义文本?

时间:2012-11-14 23:22:40

标签: php forms get

这是我的代码。我希望在提交表单的同时从LI中获取与输入相关联的文本,并在页面重新加载后,文本应该粘贴到ID为“getSpan”的div

<html>
<head>
</head>
<body>
<form id="myForm" action="so.php" method="get">
    <li><span>some text1</span><input name="Load" type="submit" value="Google" /></li>
    <li><span>some text2</span><input name="Load" type="submit" value="MSN" /></li>
    <li><span>some text3</span><input name="Load" type="submit" value="Yahoo" /></li>
</form>     
<div id="container">
    <?php
        if (isset($_GET['Load'])) {
            $value = $_GET['Load'];
            echo "<iframe width=\"560\" height=\"349\" src=\"http://www.{$value}.com\"></iframe>";
        }
    ?>
    <div id="getSpan"></div>
</div>
</body>
</html>

我尝试使用隐藏类型输入,但是url显示2个参数,一个用于主输入,另一个用于隐藏输入,我试图避免。

更新 我也尝试了@Paul S建议的混合get和post,但是如果我使用post方法,我就不能为URL添加书签。 有人请帮我解决这个问题。

感谢。

3 个答案:

答案 0 :(得分:1)

您无法读取未通过GET / POST传递的任何静态内容。一种解决方法是对返回值进行硬编码并将其与文本进行匹配,例如:

<?php
    if (isset($_GET['Load'])) {
        $value = $_GET['Load'];
        switch ($value) {
            case 'Yahoo': $myValue = 'some text1'; break;
            case 'MSN':   $myValue = 'some text2'; break;
        }
        echo "<iframe width=\"560\" height=\"349\" src=\"http://www.{$myValue}.com\"></iframe>";
    }
?>

答案 1 :(得分:1)

jQuery是你需要的,请尝试:

<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js">
</script>
<script type="text/javascript">
    $(function(){
        var formAction = $("#myForm").attr('action');
        $("button.submitBtn").click(function(e){
            var getValue = $(this).text().toLowerCase();
            var spnValue = $(this).parent().find("span:first").text();
            $("#myFrame").attr("src", "http://www."+getValue+".com");
            $("#getSpan").text(spnValue);
            window.history.pushState("","", "so.php?page="+getValue);
        });
    });
</script>
</head>
<body>

<ul>
    <li><span>some text1</span><button class="submitBtn">jQuery</button></li>
    <li><span>some text2</span><button class="submitBtn">MSN</button></li>
    <li><span>some text3</span><button class="submitBtn">digg</button></li>
</ul>     
<div id="container">
<iframe id="myFrame" width="560" height="349" src="http://www.jquery.com">
</iframe>
<div id="getSpan"></div>
</div>
</body>
</html>

没有表格没有重新加载,这适用于所有现代浏览器。

BTW,google和yahoo不能让你在iFrame中包含他们的页面

我希望这个帮助

答案 2 :(得分:0)

感谢穆罕默德和保罗。我能够解决这个问题:)我在表单上使用GET方法在URL中显示所需的查询,可以为其他查询添加书签,我使用isset检查表单提交并从我创建的缓存文件中获取值。多谢你们。