2012-02-05 55 views
1

在我的網頁,下面的函數已創建:PHP + JavaScript的彈出式窗口

<SCRIPT language="javascript" type="text/javascript"> 
    function popModData(modName) 
    { 
     var url = "./modList.php?mod=" + modName; 
     newWindow = window.open(url, modName, 'width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); 
     if(window.focus) { newWindow.focus() } 
     return false; 
    } 
</SCRIPT> 

而且,網頁本身modList.php從SQL表中加載不同的遊戲MODS的數據。我希望每個遊戲-mod名稱都可點擊,以便彈出窗口打開。我使用這個在PHP頁面代:

while($modTable = mysql_fetch_array($getMod)) 
{ 
    $colour = ($i % 2)? "#99EECC" : "CCDDFF"; 
    echo "\t\t\t<tr bgcolor='$colour'>"; 
    echo "\n\t\t\t\t<td>" . $i++ . ".</td>"; 
    echo "\n\t\t\t\t<td onclick='return popModData($modTable[Name]);'>$modTable[Name]</td>"; 
    echo "\n\t\t\t\t<td>$modTable[From]</td>\n\t\t\t</tr>"; 
} 

爲此,沒有麻煩面臨。現在,麻煩是彈出窗口打開表中的第一個條目,但不是其他任何516值。

我想有另一個文件來處理mod名稱(例如modData.php),但問題仍然存在。

請幫忙。如果有什麼遺漏,請提一提,我也會試着放下它!

+0

你能後生成的HTML? – SoonDead 2012-02-05 08:55:51

+0

^這。並且:你在哪裏初始化$ i計數器? SQL查詢怎麼樣? – 2012-02-05 08:58:18

+0

@damien $ i剛剛開始,while循環爲$ offset + 1 – hjpotter92 2012-02-05 09:19:36

回答

2

用「」包圍名稱,因爲您需要javascript將它們解析爲字符串。

像這樣:

while($modTable = mysql_fetch_array($getMod)) 
{ 
    $colour = ($i % 2)? "#99EECC" : "CCDDFF"; 
    echo "\t\t\t<tr bgcolor='$colour'>"; 
    echo "\n\t\t\t\t<td>" . $i++ . ".</td>"; 
    echo "\n\t\t\t\t<td onclick='return popModData(\"$modTable[Name]\");'>$modTable[Name]</td>"; 
    echo "\n\t\t\t\t<td>$modTable[From]</td>\n\t\t\t</tr>"; 
} 
+0

謝謝!不知道爲什麼它現在工作。我試着把它像'return popModData('$ modTable [Name]');'和'return popModData(\'$ modTable [Name] \');'也一樣。 – hjpotter92 2012-02-05 09:32:49

+0

你已經在一個onclick ='...'裏面不使用'inside',因爲如果你使用'或者',它在js中沒有任何區別,所以你可以隨時使用他。 – SoonDead 2012-02-05 09:35:35