2012-12-22 29 views
6

所以基本上,我想通過一個PHP獲取變量從一個鏈接到Javascript,所以我可以打開一個新的小窗口與適當的內容從傳遞到URL的值..我試圖做到這一點,我couldn '...我真的很感謝你的幫助。下面的代碼生成圖像超鏈接,每個圖像都有來自數據庫的id,所以當圖像被點擊時,應該打開一個新窗口,但ID應該傳遞給javascript window.open方法...我試圖做到這一點用AJAX根據get變量加載內容,但我做不到!如何傳遞PHP GET URL變量以打開一個帶有JavaScript的窗口?

<?php 
require('../database/connect.php'); 
database_connect(); 
$query = "select * from Entertainers"; 
$result = $connection->query($query); 
$row_count =$result->num_rows; 

for($i = 1; $i <= $row_count; $i++) 
    { 
    $row = $result->fetch_assoc(); 


?> 
<?php echo "<a href='' onclick='window.open(profile.php?id=".$row['ID'].")'><img src ='../".$row['Picture']."' width='100' height='100' /> </a>"; } ?> 
+0

爲什麼不',而($行= $ result-> FETCH_ASSOC()){}'? –

+0

最後一個匹配的大括號位於腳本的結尾處..我想用傳入的變量打開窗口。 –

回答

2

不要忘了引用Javascript open函數中的網址。另外,您是否考慮使用printf()進行輸出?

$link = 
'<a href="" onclick="window.open(\'profile.php?id=%d\')">' 
. '<img src="../%s" width="100" height="100" /></a>' . PHP_EOL; 

for($i = 1; $i <= $row_count; $i++) { 
    $row = $result->fetch_assoc(); 
    printf($link,$row['ID'],$row['Picture']); 
} 

%d表示十進制和%s表示在上面的字符串(因此$link)的字符串。 另一個提示:如果您沒有特別的理由使用for循環,則使用while循環代替將使您的代碼更簡潔。

while ($row = $result->fetch_assoc()) { 
    printf($link,$row['ID'],$row['Picture']); 
} 
+0

你是一個天才......嗨!你真的救了我..我怎樣才能接受你的回答...我希望我們保持聯繫..我來自加利福尼亞州洛杉磯 –

+0

我怎樣才能使打開的窗口與200和100? –

+0

我怎樣才能使窗口的寬度爲100,高度爲200 ..一個分開的窗口?我想從你已經給我的代碼中獲得這種效果。 –

0

當腳本呈現頁面的URL參數window.open上的HTML渲染爲string

你的代碼目前呈現在頁面上什麼:

<a href='' onclick='window.open(profile.php?id={some_id})'><img src ='../".$row['Picture']."' width='100' height='100' /> </a>"; } ?> 

的URL profile.php?id={some_id}當它被在客戶端解析的字符串。

試試這個:

<?php echo "<a href='' onclick=\"window.open('profile.php?id=" . $row['ID'] . "');\"><img src ='../".$row['Picture']."' width='100' height='100' /> </a>"; ?> 
+0

沒有任何工作 –

+0

@GuyRwayitare這很奇怪。我所做的只是在JS調用中在URL中添加引號。你有什麼錯誤嗎?上面的inhan解決方案比較乾淨,但基本上是一樣的。 –

+0

沒有錯誤,頁面只是不打開.. –

相關問題