2017-11-30 8 views
-1

PHPページのURLの一部である文字列があります。私は$SESSION['EmpNo']PHPまたはJavascriptを使用してテキスト文字列をPHPセッション変数に置き換えます。

のhrefは、データベースを照会し、ユーザIDに応じて、hrefのリンクを書き込みPHP関数によって移入さを作成したセッション変数を{{EMP_NO}}を交換する必要が

<a href="http://www.adomain.com/links.php?EmpNo={{EMP_NO}}">LINK</a> 

function get_user_icons($user_id) 
{ 
    $icons = array(); 
    $user_id = mysql_real_escape_string($user_id); 

    $sql = "SELECT ic.* " 
     . "FROM gbl_empicons AS em " 
     . "LEFT JOIN gbl_icons AS ic ON em.IconId = ic.id " 
     . "WHERE em.EmpNo = '$user_id' ORDER BY em.IconId"; 
    $res = mysql_query($sql) or die(mysql_error()); 

    while ($row = mysql_fetch_assoc($res)) 
    { 
     $icons[] = $row; 
    } 

    return $icons; 
} 

その後、実際のリンクは次のように書き出されます。

$icons = get_user_icons($row_WAATKgblqemplisting['EmpNo']); 

    foreach ($icons as $ic) 
    {  
echo $ic['url'] . ' '; 
    } 

私は両方の場所で運を持つstr_replaceで、この機能を更新しようとしました。

str_replace('{{EMP_NO}}', $_SESSION['EmpNo']);

これは動作しません。私はem.EmpNoを無駄に使用しようとしました。この結果を達成する最良の方法は何ですか?

+0

どのように '$ linkString'にその文字列を取得していますか? –

+0

私はそうではなく、私はそれを更新しました。私は基本的に、ページにある{{EMP_NO}}のインスタンスをセッションに置き換えたいと考えています。 –

+0

変数lolを隠すだけではなく、str_replaceがうまく動作しなくなり、人々がそれを問題と考えるようになります。 –

答えて

2

変更foreachループ:

foreach ($icons as $ic) { 
    echo str_replace('{{EMP_NO}}', $_SESSION['EmpNo'], $ic['url']) . ' '; 
} 
+1

ありがとうございました! –

-1

JavaScriptソリューションは、クッキーを読み取り、DOM操作を使用してa要素hrefを変更する関数を記述することができます。

function getCookie(cname) { 
 
    var name = cname + '='; 
 
    var ca = document.cookie.split(';'); 
 
    for (var i = 0; i < ca.length; i++) { 
 
    var c = ca[i]; 
 
    while (c.charAt(0) == ' ') { 
 
     c = c.substring(1); 
 
    } 
 
    if (c.indexOf(name) == 0) { 
 
     return c.substring(name.length, c.length); 
 
    } 
 
    } 
 
    return ''; 
 
} 
 
    
 
var link = document.getElementById('linkToReplace'); 
 
var cookie = getCookie('EmpNo'); 
 
if(cookie) { 
 
    link.href = cookie; 
 
}
<a id="linkToReplace" href="#">LINK</a>

1

あなたは第三関数の引数、あなたが何かを検索し、何か他のものと交換したい全体的な文字列を忘れてしまった

<a href="http://www.adomain.com/links.php?EmpNo=<?= $_SESSION['EmpNo']; ?>">LINK</a> 
+0

hrefがデータベースから書き出されるため、これは動作しません。書いた後に操作する必要があります –

+0

<?php echo str_replace( '{{EMP_NO}}'、$ _SESSION ['EmpNo']); ?>多分これは助けてください。 –

+0

@RoccoTheTaco:データベースから取得した値に 'str_replace()'を使用してください。 * *あなたはそれをページに出力する前に。 – David

0

That's not how you use str_replace().このコードを試してみてください。

だから、その文字列はどこですか?それはここですように見える:あなたは置き換えたいものだ

echo $ic['url'] . ' '; 

:あなたは、その内容を交換する場所

echo str_replace('{{EMP_NO}}', $_SESSION['EmpNo'], $ic['url']) . ' '; 

を使用すると、出力またはそれ以外の場合は、このリンクを含む文字列値を操作することができますどこが、それはです。

+0

質問を出力、ありがとうございます。 –

+0

これは、foreachループ:foreach($ icons as $ ic){echo str_replace( '{{EMP_NO}}'、$ _SESSION ['EmpNo']、$ ic ['url'])を解決しました。 ''; } –

関連する問題