2009-04-03 10 views
0

Ich habe ein Problem hier und ohne ins Detail zu gehen und jeden zu verwirren, lass mich einfach die einfache Frage stellen.Wie man eine Javascriptvariable einstellt oder eine von einer anderen Funktion wiederverwendet

Hier sind zwei Funktionen. Ich muss auch die Variable "id" in der Funktion SubmitForm() verwenden. Kann mir bitte jemand sagen, wie man das macht? So neu bin ich für js. :)

Danke für die Hilfe.

AC.chooseFunc = function(id,label) 
    { 
    document.qSearch.action = ".index.php?dc=2&id="+ id; 
    //document.qSearch.action = "index.php?dc=2"; 
    document.qSearch.submit(); 
    } 

    *** This one fails. 
    function SubmitForm(id) 
    { 
    document.qSearch.action = "index.php?dc=2&id="+ id; 
    document.qSearch.submit() 
    } 

Was ich brauche, ist der "id" var den Query-String in der SubmitForm Funktion angehängt. Kann mir jemand bitte sagen, wie ich das machen soll? Danke für die Hilfe!


Kann dies nicht getan werden ??

+0

Wie wird der Code ausgelöst? – cgp

+0

Wie scheitert es? Welchen Fehler bekommst du? –

Antwort

0

Könnten Sie nicht einfach eine versteckte Eingabe verwenden und PHP zur Abfrage hinzufügen?

+0

Wenn ich das täte, wäre das nicht eine Post-Variable? Ich muss das über Get schicken. Wenn es eine Möglichkeit gibt, das zu tun, was du sagst, kannst du es mir bitte zeigen? Danke –

1

Ich weiß nicht, ob Sie dies tun möchten, aber Sie könnten die Variable global machen, mit anderen Worten, erklären Sie es außerhalb beider Funktionen.

+0

Ich habe überhaupt kein Problem damit. Vielen Dank. Können Sie mir sagen, was die Syntax dafür ist? –

+0

Hey Sam, wäre es möglich, nur seinen Wert zurückzugeben und dann in der Funktion submitForm() zu verwenden? Ich bin so neu bei js, dass ich keine Ahnung habe, wie ich das machen soll. –

+0

setzen Sie einfach idGlobal = "" außerhalb beider Funktionen. Dann setzen Sie die Variable in der Funktion idGlobal = id und speichern sie in der Variablen, die bereits deklariert wurde. Dann in der anderen Funktion verwenden Sie idGlobal anstelle von ID. Sieh dir SidneySMs Beitrag auf dieser Seite an, um zu sehen, worüber ich rede. – Samuel

0

Ist die ID null? Überprüfen Sie den Wert der ID ...

alert(id); 

Die zweite Funktion sieht OK für mich. Das Problem könnte darin bestehen, dass du null hineingehst.

+0

Hi, ja, es ist "undefined" zur Zeit –

+0

Die obere Funktion wenn ich eine Warnung mache() gibt mir einen Wert aber die untere Funktion nicht –

+0

Ich denke es geht um zu zeigen, dass mit der Funktion nichts falsch ist, sondern eher etwas falsch daran, wie du die Funktion anrufst. Mehr Code wird benötigt, um zu helfen. –

0

Es ist ziemlich klar, dass die beiden Funktionen nicht auf die gleiche Weise aufgerufen werden.

Wie in einem anderen Kommentar erwähnt, warnen Sie den Wert, um zu sehen, was Sie wirklich in der Funktion bekommen. Die Funktion selbst sieht fein, so ist die einzige Schlussfolgerung, dass sie nicht aus den gleichen Daten arbeiten ODER sie auf verschiedene Arten aufgerufen werden.

würde ich empfehlen, ein wenig mehr von dem Code in der Aufrufstruktur

+0

Hallo, du hast Recht. Die obere Funktion ist für ein Ajax-Autocomplete-Skript und die untere Funktion wird verwendet, wenn der Benutzer die Senden-Schaltfläche drückt. Deshalb habe ich 2 Funktionen. –

2

Zuerst wird, wie Haftungsausschluss veröffentlichen, ich denke, dass wir alle in der Lage sein, Ihnen bessere Antworten zu geben, wenn Sie eine Beispielseite zeigt, wie die Post Dokument wird zusammengestellt.

Hier ist eine Möglichkeit, wie Sie es zum Laufen bringen können. An oder nahe der Spitze des Skripts (oder <script>-Tag) deklariert eine Variable:

var storedId; 

Dann an der Spitze der AC.chooseFunc, kopieren Sie den Wert von id zu storedId:

AC.chooseFunc = function(id,label) 
    { 
    storedId = id; 
    ... 

Schließlich , ID aus den SubmitForm-Parametern entfernen und stattdessen storedId verwenden:

Verwandte Themen