-3

上記のように、ユーザーがハイパーリンクをクリックすると、PHP の変数にコピーされるようにしたいと考えています。それは可能ですか?

これは私が試したものですが、何も出てこないようですか?

コード:

    <script type="text/javascript">
    function getdl(){
        var dlink = (document.getElementById('getdllink').getAttribute('onclick'))
         <? $url ?> = var dlink
    }
    </script>

<a id="getdllink" onclick="getdl()" href="#"><strong>Master Prospectus</strong></a></font>
            <? echo $url; ?>

私は何か悪いことをした?助けてください。ありがとう!

4

3 に答える 3

4

あなたがしていることは不可能です...しかし、それはajaxによって行うことができます。

phpが行うことは次のとおりです。

ここに画像の説明を入力

したがって、ajax 呼び出しを行い、それを php 変数に割り当てる必要があります。

jqueryを使用することをお勧めします。とてもシンプルで効果的です。

でデータを送ることができます

jquery:

$("id or class of link").live("click",function(){
var val = $("#getdllink").val();

$.ajax({
  type: "POST",
  url: "some.php",
  data: { value :  val    }
}).done(function( msg ) {
  alert( "Data Saved: " + msg );
});
 return false; // Prevent browser from visiting link
})

そしてsome.phpで

$var = $_POST['value'];

上記の方法では、ページを更新する必要はありません

これを URL で送信するには、@PLB の回答を確認してください。

于 2012-09-24T07:26:51.940 に答える
3

はい、あなたはそれを間違えました。PHP はサーバー サイドなので、クライアント サイドの前に実行されます。これは、すでに解釈されているため、javascript 変数を php 変数に直接割り当てることができないことを意味します。ajaxを使用して送信する必要があります。

サンプルは次のとおりです。

var http = new XMLHttpRequest();
var myVar = 'myValue';
http.onreadystatechange=function(){
    if (http.readyState==4 && http.status==200){
        //Do whatever you want with respnse you'll get in http.responseText
        //http.responseText will contain text what php will print. In this
        //example value of myVar.
    }
}
http.open("GET","yourScript.php?myvar=" + myVar);
http.send();

PHP側では、次のことができます:

echo $_GET['myvar'];
于 2012-09-24T07:27:12.770 に答える
0

AJAXまたはPHPなしでそれを行う方法は次のとおりです...

<script type="text/javascript">
function getdl(){
    var dlink = (document.getElementById('getdllink').getAttribute('href'))
    document.getElementById('dest').innerHTML = dlink
    return false
}
</script>


<a id="getdllink" onclick="return (getdl())" href="http://www.google.com"><strong>Master Prospectus</strong></a><br />


<span id="dest"></span>
于 2012-09-24T07:31:32.620 に答える