2016-09-21 9 views
3

I持って、次のコード..私はしようとしている複数<a>タグ

次のような結果が生成さ
<!-- LANGUAGE --> 
<div class="languages_box"> 
    <span class="red">Languages:</span> 
    <a href="#" class="selected"><img src="../images/au.gif" alt="" title="" border="0" height="12px" width="15px"/></a> 
    <a href="#"><img src="../images/gb.gif" alt="" title="" border="0" height="12px" width="15px" /></a> 
    <a href="#"><img src="../images/de.gif" alt="" title="" border="0" height="12px" width="15px" /></a> 
</div> 

<!-- CURRENCY --> 
<div class="currency"> 
    <span class="red">Currency: </span> 
    <a href="#" class="selected">AUD</a> 
    <a href="#">GBP</a> 
    <a href="#">EUR</a> 
</div> 

..

My expected output

ユーザーが別のフラグまたは値をクリックすると、選択されているWebページが変更されるようにコードを変更します。これを行うには、<a>タグには<?php if(something) {echo (class=\"selected\"); } ?>が含まれていると思いますが、somethingの内容は不明です。

PHPでこれを行う方法はありますか?または、Ajax/jQueryではページコンテンツがすでにロードされているため、これは可能ですか?

+0

は、ページを再読み込みすることはできますか?クリックすると全ページのコンテンツが変更されますか?多言語サイトですか、通貨を設定していますか? – Sasikumar

+0

あなたが言っているのは、コンテンツが選択肢ごとに読み込まれている言語や通貨をクリックしたときに、新しく選択した言語や通貨を強調表示できないということです。 – Techroshni

+0

@Saskiumarこのコンテンツはウェブサイトのすべてのページに出力されるので、頻繁にリロードされます。 いいえ、ちょうどこのコンテンツ。 私が実験している設定です。サイトの言語は変更されませんが、通貨は変更される可能性があります。 – TheAuzzieJesus

答えて

4
<?php 
session_start(); 

echo $_SESSION['flag']; 
?> 
<!-- LANGUAGE --> 
<div class="languages_box"> 
    <span class="red">Languages:</span> 
    <a href="#" class="selected" id="1"><img src="../images/au.gif" alt="" title="" border="0" height="12px" width="15px"/></a> 
    <a href="#" id="2"><img src="../images/gb.gif" alt="" title="" border="0" height="12px" width="15px" /></a> 
    <a href="#" id="3"><img src="../images/de.gif" alt="" title="" border="0" height="12px" width="15px" /></a> 
</div> 

<!-- CURRENCY --> 
<div class="currency"> 
    <span class="red">Currency: </span> 
    <a href="#" <?php if ($_SESSION['flag'] == 1) { ?> class="selected" <?php } ?>>AUD</a> 
    <a href="#" <?php if ($_SESSION['flag'] == 2) { ?> class="selected" <?php } ?> id="gbp">GBP</a> 
    <a href="#" <?php if ($_SESSION['flag'] == 3) { ?> class="selected" <?php } ?>>EUR</a> 
</div> 
<style> 
    .selected{ 
     color:green; 
     font-size:20px; 
    } 
</style> 
<script src="js/jquery.min.js" type="text/javascript"></script> 

<script> 
    $(document).ready(function() { 
     $('.languages_box a').click(function() 
     { 
      var flagid = ($(this).attr('id')); 
      var jsonData = {"flagid": flagid}; 
      $.ajax({ 
       type: 'POST', 
       async: false, 
       url: "testadmintest.php", 
       data: jsonData, 
       success: function (data) { 
        //alert(data); 
        window.location.reload(); 
//     $('.currency a').removeClass('selected'); 
//      if($.trim(data)==1){ 
//      $('#gbp').addClass('selected'); 
//     } 

       } 
      }); 
     }) 
    }); 
</script> 

< ---- PHPコード----->

<?php 

session_start(); 
unset($_SESSION['flag']); 
if (isset($_POST['flagid'])) { 
    $flagid = $_POST['flagid']; 
    if ($flagid == 1) { 
     $_SESSION['flag'] = 1; 
    } else if ($flagid == 2) { 
     $_SESSION['flag'] = 2; 
    } else { 
     $_SESSION['flag'] = 3; 
    } 
} 

//echo"1"; 
?> 
+0

ありがとうございました。これは完全に機能します。 – TheAuzzieJesus

2

あなたは、GETを使用してフラグ変数を送信することができます

if(isset($_GET['flag']) && $_GET['flag'] == your flag) 
{echo (class=\"selected\"); } 

は、各リンクのためのフラグを使用して、リンクのonclickの機能を変更する()

2

あなたがいるので、form.submitします変更されたコンテンツは今のところ気にしないでください。だから、私はそれが別々に処理されると仮定しています。

既に通貨または言語を選択して表示するCSSクラスがあります。

だから、あなたのHTMLは次のような何か(私は唯一の通貨のためにそれを書いています、言語が同様のアプローチを使用します)のようになります。私はあなたがあなたの通貨のGETパラメータを持っていると仮定しています

<!-- CURRENCY --> 
<div class="currency"> 
    <span class="red">Currency: </span> 
    <a href="#" <?php echo ($_GET['currency']=="AUD" || empty($_GET['currency']))?'class="selected"':''; 
     ?>>AUD</a> 
    <a href="#" <?php echo ($_GET['currency']=="GBP")?'class="selected"':''; 
     ?>>GBP</a> 
    <a href="#" <?php echo ($_GET['currency']=="EUR")?'class="selected"':''; 
     ?>>EUR</a> 
</div> 

PHPを介してアクセスできます。これとは別に、セッション変数(現在は$ _SESSION ['language']など)から現在選択されている言語にアクセスすることも可能です。それはすべてサーバー側実装(PHP)に依存します。