2012-04-06 9 views
2

私は以前のページの変数から情報(文字列)を追加する方法を探していました。前のページに変数を追加する(テキストフィールドを指定する)

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

新1は、古いものを正しく動作させることができなかった。..

<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)

ポップアップページのコード:は、この現在のコード(2012年7月4日)

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

を更新しました今私は、このコード行を必要とする:

$イメージ= "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に関する知識は誰にもない。

答えて

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を持ち、自分の親文書での入力要素がavatarurlのIDを持っていることを確認する必要があります。このような何かを試してみてください。

+0

あなたはクラス名 'cancel_link'のリンクについて話しています。あなたはそのクラス名のボタンを意味すると思いますか? 2番目の質問:返される値はURLの最後の部分だけです。$ imageを返すのは簡単でしょうか?それ以来、私はすぐに完全なURLを持っています。 – Anori

+1

はい、あなたは両方のカウントで正しいです - 私は私の解決策を更新します – hohner

+0

私は今、唯一の質問です: 'avatarurl'のIDあなたがID番号を見つけることができないので、 – Anori

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"を追加しました。 armory.phpページ

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

私は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()" /> 

そして、それは完全に働きました。

jamieさんに助けていただきありがとうございます。

関連する問題