2015-05-03 18 views
5

Ich mache eine Website mit einer Suchleiste. Ich möchte die Suchleiste interaktiv machen, sobald sie "gesucht" und die Ergebnisse angezeigt hat. Also möchte ich die href zu chnage nach was Id verwendet wird. Zum Beispiel: Jemand sucht "Pinecones", wenn es in der Datenbank eine ID hat, für dieses Beispiel seine # 4. Sobald sie es durchsucht haben, wird es als Link angezeigt. Aber ich will den Link "/#IDNumber.php"Ändern Sie Href-Link mit PHP-Formular

Dies ist der Code im verwenden mit:

<?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>'; 
     } 

} 

} 

?> 

und

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

Jede Hilfe bei der Herstellung es?

+0

Wo ist der Code? Ich sehe nichts anderes als '.php'> ' –

Antwort

4

Sie müssen die Variable drucken.

$id = 123; 

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

Also das Endergebnis würde wie etwas sein:

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

Hinweis: Sie müssen nicht die " um $output. Es wird nicht weh tun, aber es ist nicht notwendig.

+1

so würde es etwas wie sein:

+0

Ich bekomme es nicht .. Entschuldigung Bit von einem Noob bei diesem –

+0

Grundsätzlich ändern Sie dies: zu diesem: || Sie verfehlten „Echo“ vor $ id aus. –

0

Ich bin unklar, was das Problem ist, zum Beispiel ich weiß nicht, ob Sie $ id und $ Ausgang auf einen beliebigen Wert gesetzt. Ich weiß nicht, ob der Kontext des von Ihnen geposteten Codes in einer PHP-Zeichenkette oder in einer Vorlage enthalten ist.

Allerdings, wenn es nur eine Frage der Syntax lautet dann kann folgende besser:

Als PHP-String:

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

Eine Alternative:

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

In HTML:

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

oder sogar:

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

Ich hoffe, dass all dein Problem war.

Hinweis Druck und Echo austauschbar verwendet werden, bevorzugen die Menschen Druck in diesem Szenario obwohl Echo IIRC etwas schneller ist. Keine dieser Funktionen ist richtig, daher ist es angemessen KEINE Klammern wie print ('blah') einzubeziehen.

+0

thankyou. half Haufen –

+0

gerade versucht es ... nein, es funktioniert nicht ... aber ich habe den Beitrag oben bearbeitet, um Ihnen ein wenig mehr Kontext –

+0

Wie funktioniert die erste Code-Abschnitt beziehen sich auf den zweiten? Ist das Problem, dass die Variablen $ id und $ ausgegeben werden nicht an der Stelle des zweiten Stück Code? bekommen Sie Fehlermeldungen? wissen Sie, wie Ihr Fehlerprotokoll überprüfen? Es kann sehr hilfreich sein .. – braks