2015-07-22 66 views
0

我會盡量保持這個儘可能簡單,但它是一個愚蠢的。我使用PHP從MySQL獲取數據,併爲幻想足球聯賽信息創建變量。用戶可以爲一個幻想聯盟存儲數據,或者他可以爲20個聯賽添加數據。所以當ADD TEAM頁面加載時,我得到了所有用戶聯盟的數據(帶有標準的mysql查詢,並且工作正常),並創建了變量,並在每個變量上附加了一個數字以保持它們的唯一性...如何混合使用PHP和Javascript變量?

 $l=1; 
     while ($row = mysqli_fetch_assoc($savedleagues)) { 
      ${"leaguescode".$l} = "<option value='$l'>". $row['fantasyleaguename'] . "</option>"; 
      ${"leaguetype".$l}=$row['leaguetype']; 
      ${"leaguescoring".$l}=$row['scoring']; 
      ${"leaguewebsite".$l}=$row['leaguewebsite']; 
     $l++; 
     } 

所以完成後,說用戶有三個聯賽保存。現在有PHP變量像...

$leaguescode1="<option value='1'>My Brothas League</option>" 
$leaguetype1="redraft"; 
$leaguescoring1="std"; 
$leaguewebsite1="ESPN"; 
$leaguescode2="<option value='2'>Fake Football League</option>" 
$leaguetype2="keeper"; 
$leaguescoring2="ppr"; 
$leaguewebsite2="CBS"; 
$leaguescode3="<option value='3'>Best League Ever</option>" 
$leaguetype3="redraft"; 
$leaguescoring3="ppr"; 
$leaguewebsite3="Yahoo"; 

還在我身邊嗎?哇,謝謝,讓我們繼續...

所有變量的創建都是在ADD TEAM頁面加載完成的。在ADD TEAM頁面上,有一個選擇選項用於使用之前可能輸入的其中一個聯賽的默認設置。因此,在我們的示例中,用戶可以將他輸入的三個聯賽作爲可用選項進行下拉。如果他選擇了「有史以來最佳聯賽」的聯盟,它會自動將聯盟類型改爲重新選秀,PPR的得分選項以及雅虎的網站(在ADD TEAM頁面上的表格)。選擇選項,這樣生成的...

echo "<div id='league' class='question'><span class='bold'>Assign to League?:</span> 
     <select name='fantasyleague' id='fantasyleague' onChange='setLeagueDefaults(this);'> 
     <option value='0'>Not assigned</option>"; 
     for ($i=1; $i<$l; $i++) { 
      echo ${"leaguescode".$i}; 
     } 
     echo "</select> 
     </div>"; 

正如你所看到的,我希望當用戶改變使用選擇選項的設置更改...

onChange='setLeagueDefaults(this);' 

所以,如果他們選擇聯賽3(有史以來最好的聯賽),它將通過「3」,然後我想在下面的JavaScript來使用......

function setLeagueDefaults(sel) { 
     var leaguenum = sel.value; 

     document.getElementById("<?php echo ${"leaguescoring".leaguenum};?>").checked = true; 

} 

之前,你理所當然地對我喊,我知道我的問題是與PHP代碼嵌套在t中他Javascript。可以肯定的是,將php和javascript混合在一起是非常可怕的做法,但是對於如何解決這個問題還存在一些問題。

簡單地說,我想將存儲在PHP變量$ leaguescoring3(這是「ppr」)中的數據傳遞到上面的javascript位以更改聯盟得分單選按鈕爲PPR選項(因爲是因爲PPR選項,因爲因爲它的ID爲「ppr」)。所以,當一切都說過和做過,我想它出現在代碼...

document.getElementById("ppr").checked = true; 

我得到極其混亂試圖把該JavaScript變量(稱爲「leaguenum」,這是存儲適當的選擇價值btw)回到PHP片段。看起來非常錯誤/愚蠢,所以我必須以錯誤的方式解決這個問題。

如果有人聰明/瘋狂足以明白我試着去解釋,並能指出我在一個更好的方向,請讓我知道。

任何有關此方面的幫助將完全讚賞。

感謝

+0

JSON和AJAX是在哪裏。去谷歌上查詢。 – max

回答

0

您可以使用:

<div id="test" style="display:none"> 
<?php 
echo json_encode($myPhpData); 
?> 
</div> 

然後把JSON從這個東西類似div:

var obj = $.parseJSON($('div#test').html()); 
1

您可以使用json_encode,並打印成<script>標籤

<?php $test = "Hello world!"; ?> 

<script type="text/javascript"> 
var test = <?php print(json_encode($test)); ?> 
</script>