+ Antworten
Ergebnis 1 bis 5 von 5

Thema: Ein Array im REQUEST Array anfassen - ich schaffs nicht

  1. #1
    War schon öfter hier
    Registriert seit
    24.11.2008
    Beiträge
    117
    Bedankte sich
    8
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Ein Array im REQUEST Array anfassen - ich schaffs nicht

    hallo,

    ich stehe bei einem PHP Problem auf dem Schlauch und komme einfach nicht auf die Lösung. Ich habe die Docs, das WiKi und die Klasse request.php konsultiert aber komme nicht drauf. In meinem Formular möchte eine Checkboxen automatisch (un)checken lassen, je nachdem, ob deren werte im REQUEST array stehen oder nicht. da sich die namen der checkboxen wiederholen, habe ich sie entsprechend so notiert:
    PHP-Code:
    <input type="checkbox" name="keys[]" id="test1" value="test1" onclick="this.form.submit();" /> 
    nun probere ich hin und her, mittel JRequest::get an das keys-array im Request array zu kommen, ohne erfolg. hier ist mein letzter versuch:
    PHP-Code:
    <input ... onclick="this.form.submit();" <?php echo in_array'test1'JRequest::getVar'keys' ) ) ? 'checked' 'unchecked'?> />
    Nutze ich diesen Aufruf in meinem Controller in der verarbeitenden Funktion, funktioniert das - dann wird 'checked' ausgegeben. Nehme ich dasselbe Fragment in mein Formular über, bekomme ich die Fehlermeldung:
    Warning: in_array() [function.in-array]: Wrong datatype for second argument
    Warum???
    Könntet ihr mir bitte helfen und sagen, wo mein fehler liegt, warum ich es falsch mache und wie es richtig geht?

    gruß, clubnite

  2. #2
    Joomla Guru Avatar von elkuku
    Registriert seit
    14.06.2006
    Ort
    Guayaquil - Südamerika
    Beiträge
    1.689
    Bedankte sich
    74
    Erhielt 517 Danksagungen
    in 397 Beiträgen

    Standard

    Hi clubnite,
    angefangen mit der korrekten xhtml notation heisst das attribut natürlich
    Code:
    checked="checked"
    :P

    der 'wrong datatype' kommt vermutlich daher, dass JRequest::getVar() dir einen leeren String zurückgibt, falls es den Wert nicht hat..

    Probier mal:
    PHP-Code:
    <?php
    $keys 
    JRequest::getVar('keys', array());

    //-- Zum schauen..
    var_dump($keys);

    $checked =( in_array('test1'$keys)) ? 'checked="checked"' '';

    ?>
    <input type="checkbox" name="keys[]" id="test1" value="test1"
     onclick="this.form.submit();" <?php echo $checked?>/>
    Gruß,
    Nikolai
    Hilf mit: Deutsche Joomla! Dokumentation Help testing: EasyCreator Noch Fragen ? Forum.Joomla-Nafu.de

  3. Erhielt Danksagungen von:


  4. #3
    War schon öfter hier
    Registriert seit
    24.11.2008
    Beiträge
    117
    Bedankte sich
    8
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    hallo elkuku und danke für deine antwort. daran hat es gelegen. allerdings habe ich nun das problem, dass die checkbox, einmal gecheckt für immer gecheckt bleibt, obwohl die verarbeitende funktion im model diesen wert bei existenz aus dem sammel-array entfernt, ehe der view aufgerufen wird. und ich finde den grund einfach nicht.... könnt ihr euch das bitte mal anschauen und mir helfen, den fehler zu finden?

    Ablauf: checkbox geklickt => wert an controller => wert an model + redirect => model schreibt/entfernt wert im session array => view.html.php holt session array => default.php sucht darin den wert der checkbox und wenn drin: echo checked="checked"

    Dafür verwendet default.php die Syntax:
    PHP-Code:
    <?php if(isset($this->selectedCheckboxes)) { if( in_array('3D'$this->selectedCheckboxes) ) { echo 'checked="checked"'; }else{ return; } } ?>

  5. #4
    Joomla Guru Avatar von elkuku
    Registriert seit
    14.06.2006
    Ort
    Guayaquil - Südamerika
    Beiträge
    1.689
    Bedankte sich
    74
    Erhielt 517 Danksagungen
    in 397 Beiträgen

    Standard

    Probier doch mal ab und an die Enter Taste.. es scrollt sich besser vertikal als horizontal... http://stackoverflow.com/questions/9...-if-statements

    Du schreibst / beziehst die Werte also in das Session array ?

    Poste mal bitte ein wenig mehr Code (Enter Taste )

    Wenn ich Deinem Link folge sehe ich ja lediglich, dass es nicht funktioniert..

    btw. <noscript> Tags machen sich gut, damit Leute die normalerweise ohne JS surfen (ich z.B.) sich nicht wundern, wenn nix passiert

    Edith: Ich vergesse immer wieder, dass var_dump bei windows so gruselig aussieht... kann doch kein mensch lesen sowas, nix für alte leute
    PHP-Code:
    echo '<pre>'.print_r($footrue).'</pre>'
    Gruß,
    Nikolai
    Hilf mit: Deutsche Joomla! Dokumentation Help testing: EasyCreator Noch Fragen ? Forum.Joomla-Nafu.de

  6. #5
    War schon öfter hier
    Registriert seit
    24.11.2008
    Beiträge
    117
    Bedankte sich
    8
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Problem gelöst

    Ursache lag im Redirect nachdem der Controller seine Arbeit verrichtet hat. Stattdessen wird nun nur die display() Methode erneut aufgerufen. Damit gehts.

    Danke!

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein