Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

variablen ausführen

Empfohlene Antworten

Veröffentlicht

Das ist meine funktion

function chk(chki) {

alert(chki);

var x = "document.formname."+chki+".checked=true";

evel(x);

}

chki = chk[0]

So das problem ist das der befehl evel anscheinend nicht mit den [ ] zurecht kommt. Aber ich weiß sonst nicht wie ich es anstellen soll.

Versuch's mal mit "eval()" statt "evel()". ;)

Nein das ist nicht das prob hab mich hier dan vertippt das meinte ich ja

Dann übergib doch als Parameter lediglich den Indox, also hier "0" und definier die Funktion folgendermaßen:

function chk(chki) {

alert(chki);

var x = "document.formname.chk["+chki+"].checked=true";

evel(x);

}

Vielleicht funktioniert das?!

Original geschrieben von White_Virus

Das ist meine funktion

function chk(chki) {

alert(chki);

var x = "document.formname."+chki+".checked=true";

evel(x);

}

chki = chk[0]

So das problem ist das der befehl evel anscheinend nicht mit den [ ] zurecht kommt. Aber ich weiß sonst nicht wie ich es anstellen soll.

erstmal so:

chki = "chk[0]";

Warum du hier eval brauchst, versteh ich grad mal nicht. Aber wenn du das x weiterverwenden willst, musst du es mit return zurückgeben, weil die Variable in der Funktion nur solange existiert, wie die Funktion ausgeführt wird.

Nachtrag:

Was du mit eval ausführen wollst, ist doch JavaScript Code, oder? Eval führt das aber als PHP-Code aus, das kann nicht funzen.

Das hier geht nicht var x = "document.formname.chk["+chki+"].checked=true";

Da das eval ja probleme mit den [] hat das hab ich nämlich auch schon gedacht.

Und nein die funktion soll auch abgeschlossen sein ich brauche kein return dabei das ist alles schon so in Ordnung da ich ja erst nur die häkchen setze und dann wenn das formular abgeschickt wird wird kontrolliert welche checkbox true ist und dann werden die dazugehörigen befehle ausgeführt und um zu schaun welche checkbox true ist muss ich ein array übergeben. Nur da der befehl eval probleme mit [] hat geht der rest auch nicht.

Ich kann mir nicht vorstellen, dass der "eval" Befehl diese Probleme macht. Was passiert denn, wenn du statt des "eval" einfach hart kodiert auf den Index 0 zugreifst, also:

function chk(chki) {

document.formname.chk[0].checked=true;

}

Funktioniert das denn?

Wie macht sich der Fehler eigentlich bemerkbar? Bekommst du einen Javascript Fehler oder passiert einfach nichts?

Wie gesagt, das kann nicht gehen, weil eval keinen JavaScript-Code ausführt, sondern PHP-Code. Wenn du das so benutzen willst, musst du den Code mit echo in ein JavaScript reinschreiben oder dir was anderes einfallen lassen.

Original geschrieben von jomama

Wie gesagt, das kann nicht gehen, weil eval keinen JavaScript-Code ausführt, sondern PHP-Code. Wenn du das so benutzen willst, musst du den Code mit echo in ein JavaScript reinschreiben oder dir was anderes einfallen lassen.

Öhm, ich glaube, du missverstehst hier etwas. Es geht um reines JavaScript, mit PHP hat das nichts zu tun. Die "eval" Funktion gibt's auch in Javascript. (Ich entnehme deinem Posting, dass es sie auch in PHP gibt. PHP kenne ich leider nicht.)

Mir ist es egal ob es php oder Js ist hauptsache es geht von mir aus kann mir auch einer eine idee in php geben aber bei JS bin ich halt schon so weit.

Also ohne den eval hmmm da geht es auch nicht :D vielleicht hät ich da früher testen sollen :)

document.formname.chk.0 ist kein Objetct ist die fehlermeldung

Naja logisch ist es ja aber warum macht er aus meinem array sowas???

Kannst du mal posten, wie du das Element im HTML Code definiert hast?

:D

<input type="checkbox" name="chk['.$i.']">

oder was meinst du???

Ne geht nicht gleicher fehler.

Grmpf!

Ich dachte eigentlich, dass ich gestern die Message noch abgesendet habe, aber irgendwie fehlt sie im Thread. Also hier nochmal:

Schau doch mal in den folgenden Thread, vielleicht hilft der dir weiter:

Checkboxen dynamisch

Das hab ich gesehen darum bin ich ja auch auf die idee gekommen :D Aber nun will ich schaun welche checkbox selectiert ist dafür brauch ich nen andern befehl und der brauch dafür arrays und darum muss ich die in ein array wandeln und das klappt ja nicht

Hmmm...

Jetzt nochmal im Detail: Was möchtest du genau?

Ich versteh das so:

Du hast ein Formular, in dem viele verschiedene Eingabefelder existieren, u.a. auch mehrere Checkboxen. Du möchtest beim Klick auf einen Button oder einen Link prüfen, welche dieser Checkboxen angeklickt sind.

Ist das bisher richtig so?

Dann folgende Fragen:

- Kennst du hierbei die Namen der Checkboxen?

- Weißt du wieviele es sind?

So es ist so ich habe ein formular in diesem forumlar gibt es eine reihe mit einer anzahl von eingabefeldern. Zu jeder reihe gehört eine checkbox. Die eingabefelder werden mit daten aus einer datenbank schon vor gefertigt. Und ich möchte das die checkbox selectiert wird wenn jemand was aus den eingabefeldern ändert.

Dann sollen nur die geänderten daten wieder in die datenbank zurückgeschrieben werden. Dabei wird auf die checkbox geachtet. Also werden nur die daten wieder zurückgeschrieben bei denen die checkbox selectiert ist. er grund dafür das ich das so mache ist, der server im hintergrund ist nicht der schnellste darum muss ich so wenig wie möglich abfragen an die datenbank stellen.

Ach ja den namen kenn ich soweit das er heißt chk und dann kommt die nummer an welcher stelle ersteht. Die anzahl der checkboxen kann ich rausbekommen indem ich mir den counter anschau der auch für die namensvergabe zuständig ist.

Möchtest du denn wirklich Checkboxen dafür verwenden? So kann der Anwender sie ja von sich aus anklicken und damit deine Überprüfungs-Logik völlig zerschießen.

Du kannst dafür doch ein ein verstecktes Feld nehmen und dessen Wert nachher prüfen. Aber wenn du's mit Checkboxen machen möchtest, sollte es folgendermaßen funktionieren. ich habe mal eine Testseite erstellt, mit der das Szenario abgebildet wird:

<html>

   <head>

      <title>Testformular</title>

      <script type="text/javascript">

      <!--

         function chk (index) {

            eval ("document.testform.chk" + index + ".checked=true;");

         }

      // -->

      </script>

   </head>

   <body>

      <form name="testform" action="">

         <table>

            <tr>

               <td>Checkbox 1:</td>

               <td><input type="checkbox" name="chk1"></td>

            </tr>

            <tr>

               <td>Checkbox 2:</td>

               <td><input type="checkbox" name="chk2"></td>

            </tr>

            <tr>

               <td>Checkbox 3:</td>

               <td><input type="checkbox" name="chk3"></td>

            </tr>

            <tr>

               <td colspan="2"><hr></td>

            </tr>

            <tr>

               <th colspan="2">Reihe 1</th>

            </tr>

            <tr>

               <td>Input 1.1:</td>

               <td><input type="text" name="input_1_1" onchange="chk(1)"></td>

            </tr>

            <tr>

               <td>Input 1.2:</td>

               <td><input type="text" name="input_1_2" onchange="chk(1)"></td>

            </tr>

            <tr>

               <td>Input 1.3:</td>

               <td><input type="text" name="input_1_3" onchange="chk(1)"></td>

            </tr>

            <tr>

               <th colspan="2">Reihe 2</th>

            </tr>

            <tr>

               <td>Input 2.1:</td>

               <td><input type="text" name="input_2_1" onchange="chk(2)"></td>

            </tr>

            <tr>

               <td>Input 2.2:</td>

               <td><input type="text" name="input_2_2" onchange="chk(2)"></td>

            </tr>

            <tr>

               <td>Input 2.3:</td>

               <td><input type="text" name="input_2_3" onchange="chk(2)"></td>

            </tr>

            <tr>

               <th colspan="2">Reihe 3</th>

            </tr>

            <tr>

               <td>Input 3.1:</td>

               <td><input type="text" name="input_3_1" onchange="chk(3)"></td>

            </tr>

            <tr>

               <td>Input 3.2:</td>

               <td><input type="text" name="input_3_2" onchange="chk(3)"></td>

            </tr>

            <tr>

               <td>Input 3.3:</td>

               <td><input type="text" name="input_3_3" onchange="chk(3)"></td>

            </tr>

      </form>

   </body>

</html>

Also ich hät das mit checkboxen gemacht denn wenn man das doch nicht ändern möcht kann die ja wieder deselectieren.

Ich werde mir dein beispiel etwas später mal anschaun

Thx

So hatte doch kurz zeit und habs mir angeschaut. Ja so geht es auch aber du überprüfst j anicht ob die gesetzt sind oder nicht. Dafür brauchst du einen andern befehl und der arbeitet mit arrays. darum muss die checkbox nen array sein.

Achso, ja, wie soll das denn genau funktionieren? Was soll den passieren, wenn eine checkbox ausgewählt ist? Du möchtest dann ja was in eine DB schreiben, also wird hier über die action doch dann wohl eine php Seite aufgerufen oder?

Von welchem Befehl, der Arrays benötigt, redest du eigentlich immer?

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.