2012-12-22 22 views
6

Quindi, in sostanza, vorrei passare una variabile get PHP da un collegamento a Javascript, così posso aprire una nuova finestra più piccola con il contenuto appropriato dal valore passato all'URL. Ho provato a farlo in seguito e non potevo '... apprezzerei davvero la tua assistenza. Il codice sottostante genera collegamenti ipertestuali di immagine che hanno i loro id dal database, quindi quando si fa clic sull'immagine, una nuova finestra dovrebbe essere aperta ma l'ID dovrebbe essere passato al metodo javascript window.open ... Ho provato a farlo con AJAX per caricare il contenuto in base alla variabile get ma non potevo farlo !!Come posso passare le variabili GET URL di PHP per aprire una finestra con 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

perché non 'while ($ row = $ result-> fetch_assoc()) {}' ?? –

+0

l'ultima parentesi graffa corrispondente si trova alla fine dello script .. Mi piacerebbe che la finestra si aprisse con la variabile passata. –

risposta

2

Non dimenticare di citare l'URL nella funzione Javascript open. Inoltre, hai preso in considerazione l'utilizzo di printf() per l'output?

$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 rappresenta un decimale e %s rappresenta una stringa nella stringa precedente (da qui il $link). Un altro consiglio: se non si dispone di un motivo particolare per utilizzare il ciclo for, l'uso di un ciclo while renderà il codice più pulito e più breve.

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

SEI UN GENIO ... GRAZIE !!!! mi hai davvero salvato .. Come posso accettare la tua risposta ... Mi piacerebbe che ci tenessimo in contatto .. Sono di Los Angeles, CA –

+0

Come posso rendere quella finestra aperta a con 200 e 100 ?? –

+0

come posso rendere quella finestra una larghezza di 100 e l'altezza di 200 .. una finestra aperta separata ?? Mi piacerebbe avere questo effetto dal codice che mi hai già dato .. –

0

Quando lo script esegue il rendering del codice HTML della pagina il parametro URL a window.open è non essere resa come una string.

Che il codice attualmente rende sulla pagina:

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

L'URL profile.php?id={some_id} è non una stringa quando viene analizzato presso il cliente.

Prova questo:

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

che non ha funzionato affatto –

+0

@GuyRwayitare Questo è strano. Tutto ciò che ho fatto è stato aggiungere citazioni intorno al tuo URL nella chiamata JS. Stai ricevendo qualche errore? la soluzione di inhan sopra è più pulita ma è essenzialmente la stessa. –

+0

nessun errore, la pagina semplicemente non si apre .. –

Problemi correlati