2

前のページの変数から情報(文字列)を追加する方法を探していました。

私の知る限り、これはjavascriptを使用して何らかの形で可能になるはずです。

新しいものは古いものを正しく動作させることができませんでした。

<script type="text/javascript">
function newPopup(url) {
    popupWindow = window.open(
        url,'popUpWindow','height=510,width=350,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes')
}
</script>
<a href="JavaScript:newPopup('(url)');">Armory Avatar</a>

新しいポップアップウィンドウ(前のページのURLを記憶している)へのリンクを開くコードがあります。このウィンドウでは、WoWキャラクターとこのキャラクターがいる領域に関する情報を挿入できます。彼らがこれを行い、送信を押すと、サイトは猛吹雪の武器庫から取得したアバターのURLを表示します。

http://eu.battle.net/static-render/eu/(imagepath)

ポップアップページのコード:この現在のコードを更新しました(7-4-2012)

   <?php
if (!isset($_POST['submit'])) { 
?>
<!-- The fill in form -->
<html>
<head>
<title>Armory Avatar</title>
</head>
<body>
<form method="post" action="<?php echo $PHP_SELF;?>">
Character Name:<input type="text" size="12" maxlength="50" name="cname"><br />
Realm Name:
<select name="rname">
<optgroup label="English Realms">
<option value="aerie-peak">Aerie-Peak</option>
<option value="agamaggan">Agamaggan</option>
<option value="aggramar">Aggramar</option>
etc etc etc.
</optgroup>
</select><br />
<input type="submit" value="submit" name="submit">
</form>
<?php
} else {  //If form is submitted execute this

    $charname = $_POST["cname"]; //input character name
    $realmname = $_POST["rname"]; //input realm name

    $charurl = urlencode(utf8_encode($charname)); //prepares character name for url usage
    $realmurl = 'http://eu.battle.net/api/wow/character/'.$realmname.'/';  //combines the basic url link with the realm name
    $toon = $realmurl.$charurl; //adds the charactername behind the realm url
    $data = @file_get_contents($toon); //retrieves the data from the armory api
        if ($data) {
            // if armory data is found execute this 

            $obj = json_decode($data); //converts the data from json to be used in the php code ?>
            <img src='http://eu.battle.net/static-render/eu/<?php echo $obj->thumbnail; ?>'> </img><br /> <?php //Is url link to image 
            $armoryname = utf8_decode($obj->name); //makes the name readable again
            echo "Name: " . $armoryname . "<br />";  //character name
            echo "Level: " . $obj->level . "<br />";  //character level
            echo "Achievement Points : " . $obj->achievementPoints . "<br />"; //Achievement Points
            if ( $obj->gender == 1 ){  //Deteremines the gender of the character
                echo "Gender : Female <br />" ;  //displays gender as female
            }else{
                echo "Gender : Male <br />" ; //dispalays gender as male
            } 
            $image = "http://eu.battle.net/static-render/eu/".$obj->thumbnail;
            ?>
            Image: <a href='http://eu.battle.net/static-render/eu/<?php echo $obj->thumbnail; ?>'> http://eu.battle.net/static-render/eu/<?php echo $obj->thumbnail; ?></a><br /> 


            <!--Button submit code-->

            <script type="text/javascript">
            $('button.cancel_link').click(function() {

            // Change the value of the input with an ID of 'avatarurl'
            // with the dynamic value given to you by the external JSON link

            window.opener.getElementById('avatarurl').value = '<?php echo $image; ?>';

            });
            </script>
            <input> <!-- The button here -->



        <?php   



        }
        else { // if armory data is not found execute this  ?>

            error code stuf
        }
}
?>

今、私はこのコード行が必要です:

$ image = " http://eu.battle.net/static-render/eu/".$obj->thumbnail ;

ウィンドウが閉じられたとき、または単に別の送信ボタンを押すことによって返されます(閉じるボタンで発生することが望ましい)。そして、これらのいずれかが発生した場合は、これをこの文字列に挿入する必要があります。

<input type="text" class="textbox" name="avatarurl" size="25" maxlength="100" value="{$avatarurl}" /></td>

avatarurlと呼ばれるtexbox。

うまくいけば、あなたの誰もがあなたのためにこれを行うjavascriptを変更または作成する方法を知っています。私のphpはすでに厳しく制限されており、私のjavascriptの知識はほとんどありません。

4

2 に答える 2

2

ポップアップウィンドウを閉じる方法を変更する必要があります。次のようなものを試してください。

// When a BUTTON with the class name 'cancel_link'
// is clicked, it activates the following

$('button.cancel_link').click(function() {

   // Change the value of the input with an ID of 'avatarurl'
   // with the dynamic value given to you by the external JSON link

   window.opener.getElementById('avatarurl').value = '<?php echo $image; ?>';

});

cancel_linkクロージングリンクがクラス名として使用されていること、および親ドキュメントの入力要素のIDが。であることを確認する必要がありますavatarurl

于 2012-04-06T00:13:30.037 に答える
0

だから、検索してみて、@ Jamieに感謝した後、私はどこを見ればよいかわかりました。

私はhttp://www.codingforums.com/showthread.php?t=213298を見つけまし たそしてこれはついにうまくいったものでした。

それを開くためのphpページに私は追加しました:

<script type="text/javascript">

function open_pop(){
window.open('armory.php','AvatarArmory','height=510,width=350,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes')
}
</script>
<html>
.....
<input type="button" value = "OpenArmory" onClick="open_pop()" />

id="blogbox"そして、テキストボックスの入力に追加されます。

<input type="text" class="textbox" name="avatarurl" size="45" value="{$avatarurl}" id="blogbox"/>

armory.phpページで、javascrip関数を使用してこのボタンを追加しました。

<script type="text/javascript">

            function pops(avatar){
            textcontent=opener.document.getElementById("blogbox").value;
            opener.document.getElementById("blogbox").value = textcontent + " " + avatar;
            }
            </script>
            <input type="button" value = "Insert Avatar.." onClick="pops('<?php echo $image; ?>');window.close()" />

そして、それは完璧に機能しました。

助けてくれてありがとうジェイミー。

于 2012-04-07T14:20:38.653 に答える