Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben

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?!

Geschrieben
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.

Geschrieben

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.

Geschrieben

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?

Geschrieben

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.

Geschrieben
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.)

Geschrieben

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???

Geschrieben

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

Geschrieben

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?

Geschrieben

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.

Geschrieben

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.

Geschrieben

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>

Geschrieben

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.

Geschrieben

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?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...