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 つのパラメーターが表示されています。1 つはメイン入力用で、もう 1 つは非表示の入力用です。

更新 @Paul S の提案に従って get と post を混合してみましたが、post メソッドを使用すると、URL をブックマークできません。誰かがこの問題を解決するのを手伝ってください。

ありがとう。

4

3 に答える 3

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>

フォームやリロードはありません。これは、最新のすべてのブラウザで動作します。

ところで、Google と Yahoo では、ページを iFrame に含めることができません。

この助けを願っています

于 2012-11-15T13:29:55.763 に答える
1

GET/POST 経由で渡されていない静的コンテンツを読み取ることはできません。1 つの回避策は、戻り値をハードコーディングし、次のようにテキストと一致させることです。

<?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 に答える
0

モハメッドとポールに感謝します。私はこの問題を解決することができます:)フォームでGETメソッドを使用して、ブックマークできるURLに目的のクエリを表示し、他のクエリではissetを使用してフォームの送信をチェックし、作成したキャッシュファイルから値を取得しました。みんなありがとう。

于 2012-11-17T00:45:26.080 に答える