Div einblenden, wenn wert nicht leer

Hallo Forum,

mein Problem:

Ich möchte einen Button per Div einblenden, wenn ein bestimmtes Feld einen wert enthält.

Ist das Feld gefüllt, dann soll der Button eingeblendet werden. Wenn es nicht gefüllt ist, dann soll der Button ausgeblendet bleiben.

Konkreter:

Das Feld:

Rechnungs-Nr.

Der Button:

Mahnschreiben erstellen

Mein Codeansatz:

auftragsnummer = document.getElementById(‚x_auftragsnr‘).value;
if (auftragsnummer != null) {
document.getElementById(‚x_but‘).style.visibility=‚visible‘;
}{
document.write(‚Bitte waehlen Sie eine Rechnungsnummer!‘);
}

entweder
das script am ende (verbessert wurde nur != „“)
Rechnungs-Nr.

Mahnschreiben erstellen

auftragsnummer = document.getElementById(‚x_auftragsnr‘).value;
if (auftragsnummer != „“) {
document.getElementById(‚x_but‘).style.visibility=‚visible‘;
} else {
document.write(‚Bitte waehlen Sie eine Rechnungsnummer!‘);
}

oder nach onload aufrufen, da dann erst das feld auch ein wert hat.

function showbut(){
auftragsnummer = document.getElementById(‚x_auftragsnr‘).value;
if (auftragsnummer != „“) {
document.getElementById(‚x_but‘).style.visibility=‚visible‘;
} else {
document.write(‚Bitte waehlen Sie eine Rechnungsnummer!‘);
}
}
Rechnungs-Nr.

Mahnschreiben erstellen

Hi!

Vielen Dank für Deine Antwort.
Leider klappt beides bei mir nicht.
Der Hinweis: „Bitte wählen Sie eine Rechnungsnummer“ wird problemlos beim Öffnen des Formulars angezeigt. Ist ja auch korrekt so.

Nun fangen aber die Hauptsächlichen Probleme an.
Wenn ich auf den Button zur Auswahl der Rechnungsnummer durch mein PopUp klicke, dann wähle ich ja einen Datensatz aus, dessen Values dann auf das Parent-Formular übertragen werden.

JETZT KOMMTS:
Sobald ich einen Datensatz ausgewählt habe, soll der Button erscheinen, andernfalls soll er ausgeblendet bleiben.

Ich hatte auch schon an ein Refresh gedacht aber leider verschwinden sofort die Werte aus dem Parent-Formular, sobald ich einen Refresh mache. Da kenne ich die Lösung auch noch nicht.

Wenn Du für das Zweitere auch noch ne Idee hast, dann wäre ich Dir sehr verbunden.

Besten Dank im Voraus und viele Grüße aus Köln

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Nun fangen aber die Hauptsächlichen Probleme an.
Wenn ich auf den Button zur Auswahl der Rechnungsnummer durch
mein PopUp klicke, dann wähle ich ja einen Datensatz aus,
dessen Values dann auf das Parent-Formular übertragen werden.

ok, aber danach musst du die funktion zur abfrage des feldes nochmal aufrufen nachdem du die werte überträgst, weil ich glaube nicht das ein onchange ausgelööst wird.

self.opener.showbut()

JETZT KOMMTS:
Sobald ich einen Datensatz ausgewählt habe, soll der Button
erscheinen, andernfalls soll er ausgeblendet bleiben.

siehe oben.

Das habe ich auch schon vor ein paar Tagen probiert. Dabei habe ich sogar an die Funktion einen der Values „Rechnungsnummer“ übergeben, also self.opener.showbut(x_auftragsnr).

Überprüft habe ich es in der Funktion mit einem alert(x_rechnungsnummer). Der Wert wurde wunderbar übertragen und das alert(…) wurde auch mit dem übergebenem Wert angezeigt aber leider hat sogar dabei das -Tag nicht reagiert, was ich nicht verstehe.

Ob ich nun getElementsByName(…) oder getElementById(…) arbeite und mit style.display = ‚block‘ und ‚none‘ oder mit style.visibility = ‚visible‘ und ‚hidden‘ arbeite…auf nichts reagiert die Funktion.

Was mir noch aufgefallen ist, ist das in der If-Verzweigung der abgefragte Wert, also
if (auftragsnumer != „“) {} else {}
oder
if (auftragsnummer != null) {} else {}
verwende…auf nichts reagiert die Funktion. Verstehe ich einfach nicht. Vielleicht sollte ich die geschweiften Klammern weglassen.
Probiere ich gleich mal.

Irgendwie reagiert die Funktion immer nur teilweise. :frowning:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Nun fangen aber die Hauptsächlichen Probleme an.
Wenn ich auf den Button zur Auswahl der Rechnungsnummer durch
mein PopUp klicke, dann wähle ich ja einen Datensatz aus,
dessen Values dann auf das Parent-Formular übertragen werden.

ok, aber danach musst du die funktion zur abfrage des feldes
nochmal aufrufen nachdem du die werte überträgst, weil ich
glaube nicht das ein onchange ausgelööst wird.

self.opener.showbut()

JETZT KOMMTS:
Sobald ich einen Datensatz ausgewählt habe, soll der Button
erscheinen, andernfalls soll er ausgeblendet bleiben.

siehe oben.

Das habe ich auch schon vor ein paar Tagen probiert. Dabei
habe ich sogar an die Funktion einen der Values
„Rechnungsnummer“ übergeben, also
self.opener.showbut(x_auftragsnr).

Überprüft habe ich es in der Funktion mit einem
alert(x_rechnungsnummer). Der Wert wurde wunderbar übertragen
und das alert(…) wurde auch mit dem übergebenem Wert
angezeigt aber leider hat sogar dabei das -Tag
nicht reagiert, was ich nicht verstehe.

Ob ich nun getElementsByName(…) oder getElementById(…)
arbeite und mit style.display = ‚block‘ und ‚none‘ oder mit
style.visibility = ‚visible‘ und ‚hidden‘ arbeite…auf
nichts reagiert die Funktion.

Was mir noch aufgefallen ist, ist das in der If-Verzweigung
der abgefragte Wert, also
if (auftragsnumer != „“) {} else {}
oder
if (auftragsnummer != null) {} else {}
verwende…auf nichts reagiert die Funktion. Verstehe ich
einfach nicht. Vielleicht sollte ich die geschweiften Klammern
weglassen.
Probiere ich gleich mal.

Irgendwie reagiert die Funktion immer nur teilweise. :frowning:

Mir ist nochwas aufgefallen:

Bei diesem Script wird nichtmal das Setzen auf display = ‚none‘ ausgeführt. Wie kann das sein???

var auftragsnummer = document.getElementById(‚x_auftragsnr‘).value;
document.getElementById(„x_but“).style.display=‚none‘;
msg = document.write(’<b><font color=ffffff>Bitte waehlen Sie eine Rechnungsnummer!</font></b>’);
if (auftragsnummer.length != 0)

document.getElementById(„x_but“).style.display=‚block‘;
document.write(„hat geklappt!“);

Der Hinweistext wird aber korrekt angezeigt. Komisch…ich dreh noch durch!

hier eine funktionierende lösung.

http://global-eworld-consulting.de/help/script/opene…

das php dazu
Einzelmahnung erstellen
td {
font-size: small;
}
.tr_font {
font-size: medium;
font-weight: bold;
color: #ffffff;
}

// variablen global einrichten
var ids="";
var auftraggeb="";
var name="";
var vers="";
var zziel="";
var brutto="";
// Hier erst die funktion
function copyIt(){
self.opener.document.einzelmahnung.x_auftragsnr.value = ids;
self.opener.document.einzelmahnung.x_mahnempf.value = auftraggeb;
self.opener.document.einzelmahnung.x_name.value = name;
self.opener.document.einzelmahnung.x_vers.value = vers;
self.opener.document.einzelmahnung.x_zstat.value = zziel;
self.opener.document.einzelmahnung.x_brutto.value = brutto;
self.opener.showbut();
}
var oldRow = null;
function doIt( evt )
{
var selectedRow = ( evt.target || evt.srcElement );
while ( selectedRow.tagName != „TR“)
selectedRow = selectedRow.parentNode;
if ( oldRow )
{
oldRow.style.backgroundColor = „“;
if ( oldRow == selectedRow )
{
oldRow = null;
return true;
}
};
selectedRow.style.backgroundColor = „orange“;
oldRow = selectedRow;
}

function beenden () {
var antwort = confirm(‚Moechten Sie das Fenster wirklich schliessen?‘);
if(antwort != true) {
return false;
exit;
}
else {
window.close(this);
}
}
//–>

Sachbearbeiter:

<?php include("connected.php"); ?> <?php $datum=date("j.n.Y"); echo "Datum: $datum "; ?> <?php $zeit=date("H:i"); echo "Bearbeitungszeit: $zeit " ?> <?php $extras = "SELECT * FROM patienten ";
$ergebnis = mysql\_query( $extras ) or die("Fehler 5: " . mysql\_error()); $count = "SELECT count(\*) FROM patienten "; $ergebnis2 = mysql\_query( $count ) or die ("Fehler 6: " . mysql\_error()); ?\>RechnungsnummerMahnempfängerZahlungsstatus<?php $zaehler1 = mysql_result($ergebnis2,0);
echo $zaehler1; global $zaehler1; while ($mahnnr = mysql\_fetch\_array( $ergebnis )) { $color = ($i % 2) ? "#84c1de" : "#FFFFFF"; $ids = htmlspecialchars(@$mahnnr['idx']); $idsNeu = "nr\_".$ids; $nr = htmlspecialchars(@$mahnnr['idx']); $auftraggeb = htmlspecialchars(@$mahnnr['vorname']); $name = htmlspecialchars(@$mahnnr['name']); $vers = htmlspecialchars(@$mahnnr['Versicherung']); $brutto = htmlspecialchars(@$mahnnr['Bruttobetrag']); $zziel = htmlspecialchars(@$mahnnr['Zahlungsziel']); $zstatus = htmlspecialchars(@$mahnnr['zahlungsstatus']); echo '|'; echo "".$nr; echo 'function setIt'.$ids.'(){ ids="'.$idsNeu.'"; auftraggeb="'.$auftraggeb.'"; name="'.$name.'"; vers="'.$vers.'"; '; echo 'zziel="'.$zziel.'"; zziel="'.$zziel.'"; brutto="'.$brutto.'"; ids = "'.$nr.'"; copyIt();}'; echo "".htmlspecialchars(@$mahnnr['Mahnempfaenger']).""; echo "".htmlspecialchars(@$mahnnr['zahlungsstatus']).""; echo ""; $i++; } mysql\_close(); ?\>

SUPER!!!

Aber eigentlich ist alles so geblieben wie es auch vorher war, mit einer Ausnahme, dass ich den Funktionsaufruf in dem PopUp ganz oben stehen hatte und es so nicht funktionierte.

Warum muß denn der Funktionsaufruf im PopUp ganz unten stehen?
Könntest Du mir das bitte noch kurz erklären, damit ich heute nacht auch gut schlafen kann? :wink:

Besten Dank…find ich echt super! :smiley:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

erst werden die Daten übertragen

self.opener.document.einzelmahnung.x_auftragsnr.value = ids;
self.opener.document.einzelmahnung.x_mahnempf.value =
auftraggeb;
self.opener.document.einzelmahnung.x_name.value = name;
self.opener.document.einzelmahnung.x_vers.value = vers;
self.opener.document.einzelmahnung.x_zstat.value = zziel;
self.opener.document.einzelmahnung.x_brutto.value = brutto;

dann wird die prüfung aufgerufen, undzwar im opener, also da wo du die daten hin übertragen hast.

self.opener.showbut();

logisch oder, erst daten übertragen , dann dort prüfung starten.

Jau…eigentlich logisch.
Da war ich wohl viel zu blöd um mal daran zu denken die Reihenfolge zu beachten.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]