2017-10-04 2 views
0

私はPHPを使用しています。hrefのリンクテキストとクエリーストリングに一致するPHP

aタグ内のテキストを取り、href属性のクエリ文字列に追加する必要があります。

例:

<a href="page.php">sometext</a> 

は次のようになります。

<a href="page.php?q=sometext">sometext</a> 

だから、僕はpage.phpする任意の単語をリンクしますが、ユーザーがそれをクリックしたときには、「page.php Q = sometext行きます?実際のリンクは "page.php"から "page.php?q = sometext"に変わります。

可能な場合は、専用のPHPとの唯一の方法は、内部HTMLやPHPとhref属性の両方を記述することであるjsfiddle.netまたはphpfiddle.org

答えて

1

あなたはjQueryを使って、クライアント側で行うことができます。

<script type="text/javascript"> 
    $(function(){ 
     $('a').each(function(index, element){ 
      href = $(element).attr('href'); 
      $(element).attr('href', href + "?q=" + $(element).text()); 
     }); 
    }); 
</script> 

例:https://jsfiddle.net/jgj7k19o/

+0

ありがとうございますが、動作させることができませんでした.jsfiddleを使用した実例がありますか? netまたはphpfiddle.org – Mike

+0

私はjsfiddleを含むように答えを更新しました – BDebroy

+0

それは素晴らしいですが、それはページ内のすべてのリンクをオンにして?q =を追加します。私はそれを "page.php"という名前のリンクだけに追加する必要があります。他のリンクはありません – Mike

-1

を使用して例を作成してください。

例:

echo '<a href="foo.php?' . $bar .'">' . $bar .' .</a>'; 
+0

PHPの中だけでなく、内部で動作するものでもありません。タグは常に "sometext"です。必要なのは何かをエコーする(またはマッチさせる)ものです。>そしてそれを追加しますか?q = – Mike

+0

@ミーク申し訳ありませんが、これはサーバー側ではなくクライアント側の情報ヘッダーの外側にあります。これはPHPやサーバーサイドの言語では不可能です。問題はPHPが必要なように見せかけるフレーズでした。 – Ben

0

はたぶんそれを行うためにはJavaScriptを使用して?

のjQueryを使用した - ここ

$(function(){ 
    $("a[href='page.php']").attr("href","page.php?q=query"); 
}) 

はJSfiddle例はCodeIgniterのでJSFiddle

+0

ありがとうございます。jsfiddle.netやphpfiddle.orgを使用している実例がありますか? – Mike

0

あります。 URLに文字列を表示する場合は、ルートを使用する必要があります。 foreachを使用してコントローラからビューにデータを渡した後は、ビューはこのようになります。私の以前のプロジェクトから

ビュー

<?php foreach($var as $row){?> 
<a href="<?= base_url().'events/edit_events/'.$row->event_name?>"Edit 
<?php }?> 

ルートの私のルートで

$route['events/edit_events/(:any)'] = 'events/edit_events/$1'; 

:それはなど

ID、名前にすることができることを意味し任意の

ここでは、ドロップダウンリストを使用しました。イベントテーブルに3つのデータがあると仮定します。最初のイベントで「編集」を選択すると、自分のルートを渡します。したがって、あなたのURLはlocalhost/project/events/edit_events/event1になります。

関連する問題