2009-12-02 4 views
0

Je travaille sur un script et cela fonctionne très bien dans IE et Chrome, mais les liens ne fonctionnent pas dans Firefox. Fondamentalement, j'utilise PHP pour interroger une base de données et générer des liens à l'intérieur de la page.Liens Javascript fournis par php dans Firefox

Exemple du code de lien utile:

<TD class="bodycopyblue" 
    onmouseover="this.style.background='#FFFF80';this.style.cursor='pointer'" 
    onmouseout="this.style.background='#FFFFFF'" 
    onclick="getAccountDetails(<?php print $accountinfo['audio_account_id']; ?>)" 
>view CDRs</TD> 

Le onmouseover/out code fonctionne bien. L'onclick ne semble pas l'être.

La fonction des appels de lien:

function getAccountDetails(account_id) { 

    accountform.aid.value=account_id; 
    accountform.submit(); 
} 

Ce qui soumet un formulaire:

<FORM id="accountform" 
    action="accountdetails.php?month=<?php print $cdate['mon']; ?>&year=<?php print $cdate['year']; ?>" 
    method="post"> 
<INPUT id="aid" name="aid" type="hidden" value=0> 
</FORM> 

Le formulaire ne semble pas être montrant correctement ... mais il est une forme simple un seul champ caché. Publié en utilisant un lien généré par certains php. J'ai installé firebug, mais soit par mon ignorance de son fonctionnement ou rien de mal, il ne signale aucune erreur.

Répondre

0

essayer

function getAccountDetails(account_id) { 

     document.getElementById('aid').value=account_id; 
     accountform.submit(); 
} 
+0

Cela fonctionne, même si je dois faire un document.getElementById pour le compte et appeler de présenter ce résultat. – Valrus

0

Quel est le code HTML généré? Faites un "view source" dans Firefox et collez votre code dans la question. Vous verrez probablement du HTML malformé.

0

Firebug 1.4 et FF 3.5 travail un peu délicat, vous devez ouvrir la console de Firebug (F12, ou cliquez sur l'icône Firebug en bas à droite), puis recharger la page avec l'ouverture console . Cliquez sur l'onglet "Console" une fois que votre fenêtre Firebug est ouverte, peut-être qu'il vous montrera une erreur.

Ma seule autre suggestion est d'ajouter un semilcolon après votre instruction JS. Firefox est généralement très indulgent cependant - il est étrange que cela fonctionne dans les autres navigateurs et non FF. En tant que test final, supprimez les événements mouseover et mouseout et laissez simplement l'onclick et voyez si cela fonctionne tout seul.

+0

Merci pour l'info sur firebug, il a montré une erreur de script Java. "accountform est indéfini". Apprentement, il n'a pas aimé comment je référençais l'élément dans ma fonction. – Valrus

0
function getAccountDetails(account_id) { 
    accountform.aid.value=account_id; 
    accountform.submit(); 
} 

Qu'est-ce que accountform? Si vous n'avez pas fait var accountform= ... n'importe où vous n'obtiendrez aucune variable avec ce nom, sauf dans IE qui crée par erreur des variables pour les éléments nommés dans la portée window.

Ne vous fiez pas à ce sujet, mis en accountform explicitement:

function getAccountDetails(account_id) { 
    var accountform= document.getElementById('accountform'); 
    accountform.elements.aid.value=account_id; 
    accountform.submit(); 
} 
+0

accountform est l'identifiant du formulaire que j'essaie de soumettre. – Valrus

+0

Ensuite, vous devrez utiliser 'document.getElementById' pour le mettre dans une variable. – bobince