0

这是我的代码。我想在提交表单时从与 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 的建议尝试了混合获取和发布,但如果我使用发布方法,我无法为 URL 添加书签。有人请帮我解决这个问题。

谢谢。

4

3 回答 3

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>";
    }
?>
于 2012-11-14T23:29:01.983 回答
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>

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

顺便说一句,谷歌和雅虎不让你能够将他们的页面包含在 iFrame 中

我希望这有帮助

于 2012-11-15T13:29:55.763 回答
0

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

于 2012-11-17T00:45:26.080 回答