2011-03-03 40 views
0

我試圖將一些值傳遞給從父頁面到子頁面的文本框。代碼我工作正常傳遞一個整數值到父頁面,但它不會傳遞一個字符串。我還想嘗試將另一個值傳遞給另一個文本框,我該如何去做這件事?PHP Javascript opener.document question

logRequestAdmin是父頁面上窗體的名稱,ClientName是發佈第一個值的文本框。

這裏是我的孩子頁面代碼:

<head> 
<script type="text/javascript"> 
    <!-- Begin 
    function moveData(info) { 
    window.opener.document.logRequestAdmin.ClientName.value = info; 
    self.close(); 
    return false; 
    } 
    // End --> 
</script> 

 <table> 
      <tr> 
       <td class="clientTop">Client ID</td> 


       <td class="clientTop">Client Name</td> 

       <td class="clientTop">Username</td> 

       <td class="clientTop">Email</td> 

      </tr> 


      $query = "Select * from clients"; 

      $result = mysql_query($query) or die ("Error in query: $query. ".mysql_error()); 

      while($row = mysql_fetch_array($result)) 
      { 

       $ClientID = $row['ClientID']; 

       $ClientName = $row['ClientName']; 

       $Username = $row['Username']; 

       $Email = $row['Email']; 

       echo '<tr> 
         <td class="clientBottom"><a href="javascript:void();" onclick="moveData(' . $ClientID . ');">' . $ClientID . '</a></td> 
         <td class="clientBottom"><a href="javascript:void();" onclick="moveData(' . $ClientID . ');">' . $ClientName . '</a></td> 
         <td class="clientBottom"><a href="javascript:void();" onclick="moveData(' . $ClientID . ');">' . $Username . '</a></td> 
         <td class="clientBottom"><a href="javascript:void();" onclick="moveData(' . $ClientID . ');">' . $Email . '</a></td> 
         </tr>';  
      } 
     </table> 
+0

我在php代碼開始之前沒有看到php標籤 – 2011-03-03 16:24:14

+0

我剛剛刪除了它們fr om後的嘗試和清理代碼有點 – Matt 2011-03-03 16:24:57

回答

2

它看起來像這個問題是在A標記你的JavaScript函數調用。這裏是你傳遞整數和字符串代碼是如何工作的?

echo '... 
      <td class="clientBottom"><a href="javascript:void();" onclick="moveData(' . $ClientID . ');">' . $ClientID . '</a></td> 
      <td class="clientBottom"><a href="javascript:void();" onclick="moveData(' . $ClientName . ');">' . $ClientName . '</a></td> 
     ...'; 

上面的紋路寫HTML一樣:

<td class="clientBottom"><a href="javascript:void();" onclick="moveData(1);">1</a></td> 
<td class="clientBottom"><a href="javascript:void();" onclick="moveData(The Dude);">The Dude</a></td> 

的JavaScript認爲你傳遞一個1第一次,並應由於函數調用格式錯誤,因此在The Dude上拋出錯誤。

如果你添加一些額外的撇號,它應該工作得很好。

PHP:

echo '... 
      <td class="clientBottom"><a href="javascript:moveData(\'' . $ClientID . '\');">' . $ClientID . '</a></td> 
      <td class="clientBottom"><a href="javascript:moveData(\'' . $ClientName . '\');">' . $ClientName . '</a></td> 
     ...'; 

HTML:

<td class="clientBottom"><a href="javascript:moveData('1');">1</a></td> 
<td class="clientBottom"><a href="javascript:moveData('The Dude');">The Dude</a></td> 

如果你希望你的行看起來更清潔,你也可以改變你的js函數傳遞鏈接標籤的innerHTML財產...

<script type="text/javascript"> 
    function moveData(el) { 
     info = el.innerHTML; 
     // do something with info... 
    } 
</script> 
... 
<a href="javascript:void();" onclick="moveData(this);">Lorem Ipsum</a> 
+0

+1建議重複使用''標籤的innerHTML – dcestari 2011-03-03 17:03:57

+0

這太好了,非常感謝 – Matt 2011-03-03 17:45:04