2011-09-22 62 views
0

我正在爲兩種語言(英語&北印度語)做一個簡單的html表單,所以我顯示了兩種語言的鏈接,例如ex <a href="#"> English </a>/<a href="#">Hindi之後,我需要用相應的語言顯示用戶單擊其中一個超鏈接的表單。所以在這裏如何找出哪個語言鏈接被點擊?在javascript中設置會話或php變量?

<a href="#"> English </a>/<a href="#">Hindi 

    <? if($_SESSION['language']=='English'){ ?> 
    <form action="" method="post" name="englishform"> 
    ...... 
    </form> 
<? } else { ?> 
<form action="" method="post" name="hindiform"> 
    ...... 
    </form> 
<? } ?> 
+0

你想的超級鏈接去一個新的頁面(什麼是超鏈接實際上是),或者你只是想一個按鈕,交換的形式,而不重裝頁? – Kokos

+0

重新加載相同的頁面,如果它很容易或交換時,單擊該鏈接 – Srini

回答

0
<html> 
<head> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.js"></script> 
    <script type="text/javascript"> 
    $(function() { 
     $("#showEnglishForm").click(function() 
     { 
      $("#hindiFormDiv").hide(); 
      $("#englishFormDiv").show(); 
     }); 
     $("#showHindiForm").click(function() 
     { 
      $("#hindiFormDiv").show(); 
      $("#englishFormDiv").hide(); 
     }); 
    }); 
    </script> 
</head> 

<body> 
    <a href="#" id="showEnglishForm">show English form</a> 
    <a href="#" id="showHindiForm">show Hindi form</a> 
    <div id="englishFormDiv" style="display:none;"> 
     <h3>English form</h3> 
     <form action="" method="post" name="englishForm"> 
     ... 
     </form> 
    </div> 
    <div id="hindiFormDiv" style="display:none;"> 
     <h3>Hindi form</h3> 
     <form action="" method="post" name="hindiForm"> 
     ... 
     </form> 
    </div> 
</body> 
</html> 
2

你不能用java腳本來改變PHP代碼。由於PHP代碼在服務器上運行。發送到客戶端,然後可以在結果上運行Java腳本。所以你有兩個選擇:

要麼發送這兩種形式。使用CSS來隱藏兩者。 onclick顯示相應的表單。

或AJAX soltion。然後用戶點擊鏈接。使用java腳本從服務器(另一個URL)獲取表單並顯示在頁面中。

+0

使用CSS隱藏這兩個表單,但我不知道如何確定哪個鏈接被點擊? – Srini

+0

你有一個叫做的函數。點擊 Kristoffer

1

您可以爲兩個表單添加隱藏字段,其中包含所選語言。

<form action="" method="post" name="englishform"> 
    <input type="hidden" name="language" value="en" /> 
    ... 
</form> 

<form action="" method="post" name="hindiform"> 
    <input type="hidden" name="language" value="hi" /> 
    ... 
</form> 
0

好吧,假設你只想隱藏或顯示基於超鏈接以不同的形式:

<a class="switcher" rel="englishform" href="#"> English </a>/<a class="switcher" rel="hindiform" href="#">Hindi</a> 

<form action="" method="post" id="englishform" style="display:none"> 
...... 
</form> 

<form action="" method="post" id="hindiform" style="display:none"> 
...... 
</form> 


<script> 

    $("a.switcher").click(function(e){ 
     var name = $(this).attr("rel"); 

     $("#" + name).show(); 

     e.preventDefault(); 
    }); 

</script> 
0

我不知道的JavaScript不夠好,但如果你jQuery你可以做以下:

<a href="en">English</a>/<a href="hi">Hindi</a> 

<form action="" method="post" data-lang="en"> 
    ... 
</form> 

<form action="" method="post" data-lang="hi"> 
    ... 
</form> 

jQuery的:(需要更指定您的實際網頁上,或者將針對所有鏈接和表單)

$('a').click(function(e){ 

    e.preventDefault(); 

    $('form').hide(); 
    $('form[data-lang="'+$(this).attr('href')+'"]').show(); 

}); 

或者沒有jQuery的:

<? if(!$_GET['lang'] || ($_GET['lang'] != "en" && $_GET['lang'] != "hi")){ ?> 
<a href="form.php?lang=en">English</a>/<a href="form.php?lang=hi">Hindi</a> 
<? }elseif($_GET['lang'] == "en"){ ?> 
<form action="" method="post"> 
    ... 
</form> 
<? }elseif($_GET['lang'] == "hi"){ ?> 
<form action="" method="post" data-lang="hi"> 
    ... 
</form> 
<? 
} 
?>