2012-11-14 74 views
0

這是我的代碼。我想擺脫與輸入與李有關的跨距中的文本,同時提交表單和頁面重新加載後的文字應該堅持到div id爲「getSpan」提交表單後,是否可以使用get方法檢索表單中的自定義文本?

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

我嘗試使用隱藏式輸入但該網址顯示2個參數,一個用於主輸入,另一個用於我試圖避免的隱藏輸入。

UPDATE 我也試過混合GET和POST由@保羅S作爲建議,但如果我使用POST方法,我不能書籤的網址。 有人請幫我解決這個問題。

謝謝。

+0

爲什麼你不使用JavaScript來完成它?它更容易做同樣的事情與jQuery或JavaScript –

+0

但我需要一個表單與get方法來顯示錶單提交後在URL中的查詢。我不確定這是否可以用JavaScript來完成。那可能嗎 ? – Dharma

+1

是的,以下將幫助你http://stackoverflow.com/questions/824349/modify-the-url-without-reloading-the-page –

回答

0

感謝穆罕默德和保羅自己的網頁。我能夠解決這個問題:)我使用表單上的GET方法來顯示URL中的所需查詢可以書籤,而對於其他查詢,我用isset檢查表單提交併從我創建的緩存文件中獲取值。多謝你們。

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>"; 
    } 
?> 
+0

其實我只是貼了我的代碼。實際上,我將動態內容放入輸入名稱和值中。所以我不能使用開關。是否有任何解決方法限制隱藏輸入的名稱值對在提交表單後不會顯示在URL中? – Dharma

+0

只需使用POST? GET請求顯示在URL中。 POST請求只會顯示在標題中(如在不在myscript.php中?)。 –

+0

但我需要主要的查詢字符串顯示在URL中。而隱藏的查詢不顯示:( – Dharma

1

jQuery是你所需要的,PLZ嘗試:

<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,谷歌和雅虎不給你的能力,包括在iFrame的

我希望這幫助

+0

感謝穆罕默德爲我的關注花費了您的時間,我嘗試使用相同的方法,但只檢查是否點擊在MSN輸入按鈕上,頁面URL變爲「..//so.php?page=MSN」現在複製相同的網址並粘貼到另一個瀏覽器中,您將無法獲得該網頁。意思是,您無法將網址加入書籤或發送MSN狀態網頁網址直接傳送給你的朋友,直接將它們登陸到當前加載了MSN的網頁中,但默認顯示的是一個。如果這不符合預期,或者我以錯誤的方式執行此代碼,請糾正我。 – Dharma

相關問題