checkboxen problem im modul

Gesperrt
hypekermit
Beiträge: 213
Registriert: Mi 9. Okt 2002, 21:24
Kontaktdaten:

checkboxen problem im modul

Beitrag von hypekermit »

hallo ich würde gerne das in dem folgenden input die checkboxen nach dem speichern
aktiviert bleiben...

jedesmal wenn ich diese aktiviere und speichere, dann sind die boxen wieder beim neuaufruf unaktiviert...

kann mir jemand helfen??


INPUT des Moduls:

Code: Alles auswählen

echo "<table width=\"300\">";
echo "<tr>";
echo "<td><b>Abfahrtsorte:</b></td>";
echo "<td></td>";
echo "</tr>";

// Abfahrtsort 1
echo "<tr>
      <td>Stuttgart buchbar?</td>
      <td><INPUT TYPE=\"checkbox\" NAME=\"CMS_VAR[30]\" VALUE=\"1\"</td>";
   if("CMS_VALUE[30]" == 1){echo "ja";};
   if("CMS_VALUE[30]" == 0){echo "nein";};
echo "</td>
      </tr>";

// Abfahrtsort 2
echo "<tr>
      <td>Ulm buchbar?</td>
      <td><INPUT TYPE=\"checkbox\" NAME=\"CMS_VAR[31]\" VALUE=\"1\"</td>";
   if("CMS_VALUE[31]" == 1){echo "ja";};
   if("CMS_VALUE[31]" == 0){echo "nein";};
echo "</td>
      </tr>";

// Abfahrtsort 3
echo "<tr>
      <td>Karlsruhe buchbar?</td>
      <td><INPUT TYPE=\"checkbox\" NAME=\"CMS_VAR[32]\" VALUE=\"1\"</td>";
   if("CMS_VALUE[32]" == 1){echo "ja";};
   if("CMS_VALUE[32]" == 0){echo "nein";};
echo "</td>
      </tr>";

// Abfahrtsort 4
echo "<tr>
      <td>Mannheim buchbar?</td>
      <td><INPUT TYPE=\"checkbox\" NAME=\"CMS_VAR[33]\" VALUE=\"1\"</td>";
   if("CMS_VALUE[33]" == 1){echo "ja";};
   if("CMS_VALUE[33]" == 0){echo "nein";};
echo "</td>
      </tr>";

// Abfahrtsort 5
echo "<tr>
      <td>Mainz buchbar?</td>
      <td><INPUT TYPE=\"checkbox\" NAME=\"CMS_VAR[34]\" VALUE=\"1\"</td>";
   if("CMS_VALUE[34]" == 1){echo "ja";};
   if("CMS_VALUE[34]" == 0){echo "nein";};
echo "</td>
      </tr>";

// Abfahrtsort 6
echo "<tr>
      <td>Koblenz buchbar?</td>
      <td><INPUT TYPE=\"checkbox\" NAME=\"CMS_VAR[35]\" VALUE=\"1\"</td>";
   if("CMS_VALUE[35]" == 1){echo "ja";};
   if("CMS_VALUE[35]" == 0){echo "nein";};
echo "</td>
      </tr>";

// Abfahrtsort 7
echo "<tr>
      <td>Landau buchbar?</td>
      <td><INPUT TYPE=\"checkbox\" NAME=\"CMS_VAR[36]\" VALUE=\"1\"</td>";
   if("CMS_VALUE[36]" == 1){echo "ja";};
   if("CMS_VALUE[36]" == 0){echo "nein";};
echo "</td>
      </tr>";

// Abfahrtsort 8
echo "<tr>
      <td>Edenkoben buchbar?</td>
      <td><INPUT TYPE=\"checkbox\" NAME=\"CMS_VAR[37]\" VALUE=\"1\"</td>";
   if("CMS_VALUE[37]" == 1){echo "ja";};
   if("CMS_VALUE[37]" == 0){echo "nein";};
echo "</td>
      </tr>";

echo "<tr>";
echo "<td colspan=\"2\"><hr noshade size=\"1\"></td>";
echo "</tr>";

echo "<tr>";
echo "<td><b>Komplett sperren:</b></td>";
echo "<td></td>";
echo "</tr>";


// Ausgebucht
echo "<tr>
      <td>Ausgebucht?</td>
      <td><INPUT TYPE=\"checkbox\" NAME=\"CMS_VAR[38]\" VALUE=\"1\"</td>";
   if("CMS_VALUE[38]" == 1){echo "ja";};
   if("CMS_VALUE[38]" == 0){echo "nein";};
echo "</td>
      </tr>";

echo "</table>";
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ist hier schön beschrieben
-> http://www.jex-treme.de/forum/archive/17763/thread.html

sieh dir das mit checked an...
*** make your own tools (wishlist :: thx)
Robatzen
Beiträge: 84
Registriert: Di 27. Jan 2004, 17:03
Kontaktdaten:

Beitrag von Robatzen »

Versuch mal sowas in der Richtung:

Code: Alles auswählen


?>
<table>
<tr><td>Checkbox:</td>
       <td><INPUT TYPE="checkbox" NAME="CMS_VAR[1]" VALUE="1"

<?php

if(CMS_VALUE[1]==1) {
  echo("checked=\"checked\"");
  }

?> 

></td></tr>
</table>
<?

Ganz einfache Lösung, sollte doch eigentlich ausreichend sein oder?
smkiel
Beiträge: 68
Registriert: Di 15. Okt 2002, 16:42
Kontaktdaten:

keine Checkboxaktivierung/ -deaktivierung möglich

Beitrag von smkiel »

Hallo

Ist das nun ein Bug oder mein Programmierfehler?
Bei mir ist in der Konfigration /Vorkonfiguration keine Checkboxaktivierung/ -deaktivierung möglich.
Es äußert sich ähnlich wie bei @hypekermit
  • hallo ich würde gerne das in dem folgenden input die checkboxen nach dem speichern
    aktiviert bleiben...

    jedesmal wenn ich die Box aktiviere und speichere, dann sind die boxen wieder beim neuaufruf unaktiviert...

Ich habe die Checkbox so programmiert , dass sie aktiviert ist. Wenn ich im Konfigurationsfenster aber die Aktivierung abklicke und die Konfiguration dann abspeichere, übernimmt contenido die Änderung nicht, sondern es bleibt der vorherigen Einstellung, die ich im Modul programmiert habe.

zweites Problem
Die Checkbox-Aktierung lässt sich nicht auslesen?

Code: Alles auswählen

Input:

...

echo "picture als link <INPUT TYPE=\"checkbox\"   NAME=\"CMS_VAR[207]\"  VALUE=\"1\"  checked=\"checked\" ><br> ";
.......


Output

.....

if (in_array("1", $_POST['CMS_VAR[207]']))   {  //  geht nicht

// if (in_array("1", $_POST['CMS_VAR[207]']))  {
//  als alternative auch geht nicht


 $checked = 1;
}

.....


kann mir jemand ein Tip geben ?

Wiebke
Robatzen
Beiträge: 84
Registriert: Di 27. Jan 2004, 17:03
Kontaktdaten:

Beitrag von Robatzen »

Hast du meine Antwort eigentlich gelesen?
Oder bist dem Link von Emergence gefolgt um nachzulesen?

Im Output des Moduls solltest du auf den Wert einer Variable mit CMS_VALUE[] zugreifen und nicht mit CMS_VAR[], dann sollte dein Code auch funktionieren.

Gruß, Rob

EDIT: Achso, für den Input schau bitte nochmal auf meinen ersten Beitrag und den Code Schippsel, wenn du natürlich immer checked="checked" setzt wie soll es dann möglich sein die Check Box abzuwählen?
smkiel
Beiträge: 68
Registriert: Di 15. Okt 2002, 16:42
Kontaktdaten:

Beitrag von smkiel »

@Robatzen
Vielen Dank für Deine Antwort. Sorry, ich habe beide Hinweise gelesen, bin aber nicht so schnell im Verstehen. Verstanden habe ich beide Hinweise nur teilweise.
Deinen Code aus deinem ersten Beitrag habe ich ausprobiert, hatte aber keinen Erfolg damit.

Output
@Robatzen schrieb

"Im Output des Moduls solltest du auf den Wert einer Variable mit CMS_VALUE[] zugreifen und nicht mit CMS_VAR[], dann sollte dein Code auch funktionieren."

Den Hinweis werde ich gleich ausprobieren. Warum muss hier aber CMS_VALUE[] benutzt werden? Es werden sonst nach Senden eines Formulars immer die Namen der name-Attribute als Variablennamen genutzt und bei $_POST verwendet. Dieser Variablenname wäre hier CMS_VAR[]. ??
Ich glaube, ich stehe immer noch auf dem Kriegsfuss damit,
was diese CMS_VAR... , CMS_HTML.. etc -"Platzhalter" wirklich sind. Jedenfalls sollen sie ja keine Variablen sein. Aber was sind sie denn? Sind sie vielleicht interne Arrays, deren Werte z.B. bei CMS_VAR.. die CMS_Value ..-Werte sind?
Beim Progammieren stosse ich da immer wieder auf Fragen und natürlich auf Schwierigkeiten, solange ich das nicht wirklich gecheckt habe ?
Ich habe dazu auch was im Forum gelesen, aber es trotzdem nicht richtig verstanden.


Input

@Robatzen schrieb
  • EDIT: Achso, für den Input schau bitte nochmal auf meinen ersten Beitrag und den Code Schippsel, wenn du natürlich immer checked="checked" setzt wie soll es dann möglich sein die Check Box abzuwählen?
Wenn ich eine Checkbox in einem PHP-Testformular
auf meinem PHP-Test-Server ausprobiere, klappt das alles
wie am Schnürchen. Da kann ich bei solchem HTML-Code

Code: Alles auswählen

<INPUT TYPE=\"checkbox\"   NAME=\"CMS_VAR[207]\"  VALUE=\"1\"  checked=\"checked\" >
die Checkbox beliebig an und abgeklicken und es werden auch die Checkzustände richtig per $_POST übertragen.
So weit ich weiss, dient dieser Zusatz checked=\"checked\" nur dazu, um die Voreinstellung auf "checked" festzulegen. Wenn ich diesen Zusatz aber weglasse, dann ist die Checkbox in der Konfiguration nicht aktiviert. Wenn ich sie dann aktiviere, wird diese Änderung aber ebenfalls nicht von Contenido gespeichert.

Ist das Konfigurationsfenster kein HTML-Formular, und muss vielleicht das, was in sonstigen HTML-Formularen so ohne weiteres geht, hier extra programmiert werden? So, wie es in dem Codeschnipsel beschrieben ist?

Danke im Vorraus

Wiebke
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Ähm, der Code von Robatzen (http://www.contenido.org/forum/viewtopi ... 9932#39932) sollte wie angegeben funktionieren ("checked" reicht). Passe ihn einfach an Deine Bedürfnisse an.

Du kannst auch

Code: Alles auswählen

if ("CMS_VALUE[1]"=="1") {
   echo '<INPUT TYPE="checkbox" NAME="CMS_VAR[1]" VALUE="1" checked>';
} else {
   echo '<INPUT TYPE="checkbox" NAME="CMS_VAR[1]" VALUE="1">';
}
verwenden. Finde ich schöner, aber das ist Geschmackssache.

CMS_VAR[] usw. sind Platzhalter. CMS_VALUE[] wird durch ein simples Ersetzen mit dem aktuellen Wert ersetzt (deswegen sollte es auch in Anführungszeichen stehen).

CMS_VAR[] wird durch C<Container-Nummer>CMS_VAR[] im Formular ersetzt. Mit dem Absenden des Formulars speichert Contenido automatisch den Wert dieses Feldes in der dazugehörigen Variable CMS_VALUE[].

Ist die Checkbox nicht aktiviert, wird CMS_VALUE[] "leer" gesetzt.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ad. platzhalter
im input bereich gibt es zwei
CMS_VAR und CMS_VALUE
im output bereich CMS_VALUE und alle content-typen (siehe con_type).

platzhalter sind keine variablen sondern strings die vor ausführung des codes ersetzt werden...
eine abfrage mit $post wird wie oben nichts bringen...

kleines beispiel annahme es wurde noch kein wert gesetzt und das modul ist in container 4 (wirkt sich nach dem ersetzen aus -> C4)
input:

Code: Alles auswählen

echo "<input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\">";
bevor der code ausgeführt werden die platzhalter durch folgendes ersetzt:

Code: Alles auswählen

echo "<input type=\"text\" name=\"C4CMS_VAR[1]\" value=\"\">";
sagen wir mal du setzt jetzt bei dem input feld einen wert XYZ und bestätigst mit okay würde der code dann so aussehen

Code: Alles auswählen

echo "<input type=\"text\" name=\"C4CMS_VAR[1]\" value=\"XYZ\">";
man könnte theoretisch den code auch über post abfragen, das geht aber nur wenn das formular abgesendet wird...

Code: Alles auswählen

print_r ($_POST["C4CMS_VAR"]);
ich hoffe diese info hilft dir ein wenig beim verständnis der platzhalter...
*** make your own tools (wishlist :: thx)
Robatzen
Beiträge: 84
Registriert: Di 27. Jan 2004, 17:03
Kontaktdaten:

Beitrag von Robatzen »

smkiel hat geschrieben:@Robatzen

Jedenfalls sollen sie ja keine Variablen sein. Aber was sind sie denn? Sind sie vielleicht interne Arrays, deren Werte z.B. bei CMS_VAR.. die CMS_Value ..-Werte sind?
Ja ich denke so kann man das vom Verständnis her schon stehen lassen:
Die einzelnen Eingabeelemente des Formulars benennen Sie mit dem Namen CMS_VAR[x], wobei x mit einer beliebigen Zahl größer-gleich Null ersetzt wird.
Bei der Ausgabe (also im Feld „Output“) haben Sie nun die Möglichkeit, mit CMS_VALUE[x] auf die bei der Template-Konfiguration eingegebenen Daten zuzugreifen. Dabei entspricht x der Zahl, die Sie auch im Input Feld verwendet haben.
Quelle: http://www.thilo-sommer.de/PHPMyFAQ/ind ... 23&lang=de

Wenn ich eine Checkbox in einem PHP-Testformular
auf meinem PHP-Test-Server ausprobiere, klappt das alles
wie am Schnürchen. Da kann ich bei solchem HTML-Code

Code: Alles auswählen

<INPUT TYPE="checkbox"   NAME="CMS_VAR[207]"  VALUE="1"  checked="checked" >
die Checkbox beliebig an und abgeklicken und es werden auch die Checkzustände richtig per $_POST übertragen.
So weit ich weiss, dient dieser Zusatz checked="checked" nur dazu, um die Voreinstellung auf "checked" festzulegen. Wenn ich diesen Zusatz aber weglasse, dann ist die Checkbox in der Konfiguration nicht aktiviert. Wenn ich sie dann aktiviere, wird diese Änderung aber ebenfalls nicht von Contenido gespeichert.
Du musst kurz überprüfen ob der Wert schon gesetzt wurde oder nicht. Grundsätzlich sind die Boxen nicht gecheckt...auch wenn der zugehörige Wert, z.B. CMS_VAR[1] auf 1 gesetzt ist. Wenn du nun einfach ein checked="checked" einfügst dann sind die Boxen immer gecheckt!

Also brauchst du an der Stelle eine Verzweigung...wenn CMS_VALUE = 1 dann gib checked aus, wenn CMS_VALUE = 0 dann gib nichts aus.

Vielleicht bastelst du fürs Verständnis mal sowas in der Richtung:

Für den Input:

Code: Alles auswählen

?>
<table>
<tr><td>Meine Checkbox:</td>
<td><INPUT TYPE="checkbox" NAME="CMS_VAR[266]" VALUE="1"

<?php
echo((CMS_VALUE[266]==1)?"checked="checked"":"");
?> 

></td></tr>
</table>
<?
Für den Output:

Code: Alles auswählen

<?php
echo((CMS_VALUE[266]==1)?"checked="checked"":"nix gecheckt!");
?> 

Achtung getestet nur für 4.5.2, ich glaub bei der 4.4er gibt es da noch Probleme habe es dort nicht zum laufen gebracht, wahrscheinlich ist da noch das java script work around von Nöten auf das Emergence verlinkt hat.

Ab 4.5.2 gehts aber so wie ich es beschrieben habe.
Danke im Vorraus

Wiebke
Aber gern doch, ich hoffe es hilft auch und verwirrt dich nicht noch mehr. :wink:

EDIT: Die Erklärungen bitte eher von Emergence und HerrB übernehmen, meine Erklärungen hinken und sind meisst nur halbwahr, nicht das ich hier noch falsche Sachen verbreite. 8)
Zuletzt geändert von Robatzen am Do 3. Feb 2005, 17:37, insgesamt 1-mal geändert.
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Boah, jetzt haben drei auf das gleiche geantwortet - nu sollte es klar sein... :wink:

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Robatzen
Beiträge: 84
Registriert: Di 27. Jan 2004, 17:03
Kontaktdaten:

Beitrag von Robatzen »

Ich war ja noch ewig am Tippen bevor ich bemerkt habe, dass ihr beiden schneller wart.

Ich werd alt. :?

Gruß, rob
smkiel
Beiträge: 68
Registriert: Di 15. Okt 2002, 16:42
Kontaktdaten:

Beitrag von smkiel »

@emergence und @HerrB
zu den Platzhaltern:
Mir geht ein Licht auf. So simple ist das! Es wird ganz hell in mir. D a.....n k e (':lol:')



@Robatzen
Ich habe die Contenido-Version 4.4.2 .
Da nehme ich wohl am besten die Lösung von @HerrB,
weil ich Deine ja schon getestet habe und es nicht funktionierte.
Das mit dem Check der Checkboxen wird mir erst jetzt richtig klar,
danke. Aber wie klappt es bei den normalen PHP-Formularen ? Wird
hier der Check automatisch abgefragt?


Schönen Abend an Euch und Danke für den Meilenschritt, den ich mit Eurer Hilfe
stiefeln konnte.

Wiebke


_____________________________________

Warum einfach, wenns kompliziert besser ist?
designOD [img][/img]
Gesperrt