Empfehlungen: Erweiterte Suche

ReadOnly Daten in edit.ctp

Ausgabedaten formatieren und darstellen

ReadOnly Daten in edit.ctp

Beitragvon doubleyou » Fr 21. Jan 2011, 11:48

Hallo Zusammen,

ich scheitere gerade an vermutlich einer total einfachen Sache.

Ich möchte in meiner Edit Datei (logischerweisse) Daten ändern welche aus der Index aufgerufen wurden.
Da es nun aber Elemente gibt da z.B. nicht verändert werden sollen bzw dürfen würde ich nun diese Daten einfach nur Anzeigen lassen. Darunter würden dann die Werte kommen welche verändert werden können.

Nun bin ich hingegangen und habe mir das entsprechende Feld also "echo" ausgegeben. Als Fehlermeldung folgt dann "Undefined variable: links"

Code: Alles auswählen
<h1>Verknüpfung ändern</h1>
<?php echo $link['Link']['userid'];?>

<?php echo $this->Form->create('Link', array('action' => 'edit')); ?>
<?php echo $form->label('Beschreibung'); ?>
<?php echo $this->Form->textarea('beschreibung');?>

<?php echo $form->input('beginn',
    array( 'label' => 'Beginn',
        'dateFormat' => 'DMY',
        'minYear' => date('Y') - 1,
        'maxYear' => date('Y') + 1 )
    );
?>

<?php echo $form->input('ende',
    array(
        'label' => 'Ende',
        'dateFormat' => 'DMY',
        'minYear' => date('Y') - 1,
        'maxYear' => date('Y') + 1 )
    );
?>

<?php echo $this->Form->input('id', array('type' => 'hidden')); ?>
<?php echo $this->Form->end('Speichern');?>


Hat jemand eine Idee wie ich dieses Problem nun umschiffe bzw. kann mir eine Hilfestellung geben ?

Danke schonmal im Voraus
Andrea
doubleyou
 
Beiträge: 30
Registriert: Fr 21. Jan 2011, 11:41
Wohnort: Mainz
CakePHP-Version: 2.x
OS: Mac OS X 10.7.4

Re: ReadOnly Daten in edit.ctp

Beitragvon mbrod » Fr 21. Jan 2011, 19:06

Ich würde das HTML-Attribut disabled benutzen:
Code: Alles auswählen
    echo $this->Form->input('beginn',array('disabled'=>'disabled'));
mbrod
 
Beiträge: 199
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.8
OS: Mac OS X

Re: ReadOnly Daten in edit.ctp

Beitragvon heohni » Di 8. Feb 2011, 18:25

Hallo, ich glaube, ich habe ein ähnliches Problem.

Code: Alles auswählen

function edit($id = NULL){
        if(empty($this->data)){
            $this->data = $this->User->read(NULL, $id);
        }
    }
 


Damit kann ich in meiner edit.ctp mein Formular erstellen und anzeigen.
Soweit so gut, jetzt möchte ich aber in der edit.ctp den Usernamen als reinen Text ausgeben:

Code: Alles auswählen

<h2>Benutzer <strong><?php echo $user['User']['usr_vorname']; ?> <?php echo $user['User']['usr_nachname']; ?></strong> editieren</h2>

<?php
    echo $form->create('User', array('action'=>'edit'));
    echo $form->input('username');
    echo $form->input('password');
    echo $form->input('id', array('type'=>'hidden'));
    echo $form->end('Änderung speichern');
?>

Ich bekomme das aber nur hin, wenn ich meiner edit function ein weiteres
[code]$this->set('user', $this->User->read(NULL, $id));[/code]
setzte. Das ist aber für meinen Geschmack doppelt gemoppelt, 2x die Daten aus der Datenbank abzufragen....

Wie kann ich das lösen?
Evtl. ist das auch die Frage OP's?
heohni
 
Beiträge: 42
Registriert: Sa 29. Jan 2011, 18:58

Re: ReadOnly Daten in edit.ctp

Beitragvon mbrod » Di 8. Feb 2011, 20:57

edit.ctp:
Code: Alles auswählen
<?php echo $this->data['User']['username']; ?>
mbrod
 
Beiträge: 199
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.8
OS: Mac OS X

Re: ReadOnly Daten in edit.ctp

Beitragvon euromark » Mi 9. Feb 2011, 04:36

vorsicht mbrod
wenn er das formularfeld dazu entfernt, gibts fehler beim post!!!

es gibt nur eine saubere lösung

$record = $this->...->find();

danne erst

$this->data = $record;
und
$this->set(compact('record'));

dann kannst du sowohl über $this->data das Formular ansteuern als auch mit $record einzelne teile manuell ausgeben

niemals hidden fields oder disabled benutzen - und selbst wenn nicht immernoch manuell absichern gegen dom injections
euromark
 
Beiträge: 644
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: ReadOnly Daten in edit.ctp

Beitragvon mbrod » Mi 9. Feb 2011, 09:10

super danke! Ich hatte meinen Schnipsel in der Tat zusätzlich zum Form Objekt benutzt. Wieder was gelernt!
niemals hidden fields oder disabled benutzen - und selbst wenn nicht immernoch manuell absichern gegen dom injections
Das ist ein anderes Thema. Man sollte sich immer bewusst darüber sein, dass etwas anderes vom "Nutzer" zurückgegeben werden kann, als man erwartet und die empfangenen Daten entsprechend überprüfen.
mbrod
 
Beiträge: 199
Registriert: Mi 20. Mai 2009, 18:09
Wohnort: Frankfurt am Main
CakePHP-Version: 1.3.8
OS: Mac OS X


Zurück zu Views

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast