2015-05-03 11 views
5

Sto facendo un sito web con una barra di ricerca. Voglio rendere interattiva la barra di ricerca una volta che ha "cercato" e mostrato i risultati. Quindi voglio che lo href diventi quello che viene utilizzato. Per esempio: qualcuno cerca "Pigne", se nel database si avrà un ID, per questo esempio la sua # 4. Dopo averlo cercato, verrà visualizzato come collegamento. Ma io voglio il link da utilizzare "/#IDNumber.php"Cambiare link href con modulo php

Questo è il codice im utilizzando:

<?php 
$output = ''; 
//collect 
if(isset($_POST['search'])) { 
$searchq = $_POST['search']; 
$searchq = preg_replace("#[^0-9a-z]#i","",$searchq); 

$query = mysql_query("SELECT * FROM `findgame` WHERE name LIKE '%$searchq%'  OR keywords LIKE '%$searchq%' LIMIT 1") or die("Search unavailable."); 
$count = mysql_num_rows($query); 
if($count == 0){ 
    $output = 'Results not found.'; 

}else{ 
    while($row = mysql_fetch_array($query)) { 
     $name = $row['name']; 
     $kwords = $row['keywords']; 
     $id = $row['id']; 

     $output .= '<div style="position:absolute;margin:110px 20px;padding:25px;">'.$id.' '.$name.'</div>'; 
     } 

} 

} 

?> 

e

<a href="/<?php$id?>.php"> <?php print("$output");?></a> 

Qualsiasi aiuto per farla funzionare?

+0

Dov'è il codice? Non vedo altro che '.php ">' –

risposta

4

è necessario stampare la variabile.

$id = 123; 

<?php $id ?>  => 
<?php echo $id ?> => 123 
<?= $id ?>  => 123 

Così il risultato finale sarebbe qualcosa di simile:

<a href="/<?= $id ?>.php"> 
    <?php print($output); ?> 
</a> 

Nota: non è necessario il " intorno $output. Non farà male, ma non è necessario.

+1

quindi sarebbe qualcosa di simile:

+0

Non capisco .. Scusa un po 'di noob in questo –

+0

Fondamentalmente cambiare questo: in questo: || Hai perso "echo" prima di $ id. –

0

Sono poco chiaro quale sia il problema, per esempio io non so se si imposta $ id e $ uscita a qualsiasi valore. Non so se il contesto del codice che hai postato è all'interno di una stringa PHP, o se è in un modello.

Tuttavia, se è solo una questione di sintassi allora quanto segue potrebbe essere migliore:

come una stringa PHP:

$out = '<a href="/' . $id . '">' . $output . '</a>'; 

Un'alternativa:

$out = "<a href=\"/$id.php\">$output</a>"; 

In HTML:

<a href="/<?php print $id; ?>.php"><?php print $output; ?></a> 

o anche:

<?php print '<a href="/' . $id . '">' . $output . '</a>'; ?> 

Spero che questo sia tutto il tuo problema.

Nota la stampa e l'eco possono essere utilizzate in modo intercambiabile, le persone preferiscono la stampa in questo scenario sebbene l'eco sia leggermente più veloce IIRC. Nessuna di queste funzioni, quindi è opportuno NON includere parentesi come la stampa ('blah').

+0

grazie aiutato heaps –

+0

appena provato ... no non funziona ... ma ho modificato il post in alto per darti un po 'di contesto in più –

+0

Come funziona il primo la sezione di codice si riferisce al 2? Il problema è che le variabili $ id e $ output non sono presenti al punto del secondo bit di codice? Ricevi messaggi di errore? Sai come controllare il registro degli errori? Può essere molto utile – braks