
Zitat von
Matrikular
was haste denn bislang versucht ? beispielcode ? wo haengst du - mit welcher/n fehlermeldung/en hast du zu tun ? haeng doch deine komponente einfach mal an.
Was ich bis jetzt habe sind verschieden Views die jeweils alle Einträge bestimmter Tabellen der Datenbank ausgeben.
Woran ich hänge ist ein View mit dem es möglich ist einen neuen Eintrag zu erstellen und im weiteren einen mit dem es möglich ist vorhandene Einträge zu bearbeiten. (beides im FE)
Was ich bisher habe:
View mit Formular fürs neu anlegen
PHP-Code:
<?php defined('_JEXEC')or die('Restricted access'); ?>
<div align="center">
<h1>neuen Arzt anlegen</h1>
<form action="<?php JRoute::_('index.php?option=com_patienten'); ?>" method="post" name="newarzt">
angestelltennummer:<input name="angestelltennummer" type="text"><br />
nachname:<input name="nachname" type="text"><br />
vorname:<input name="vorname" type="text"><br />
email:<input name="email" type="text"><br />
geschlecht:<input name="geschlecht" type="text"><br />
geburtsdatum:<input name="geburtsdatum" type="text"><br />
strasse:<input name="strasse" type="text"><br />
hausnummer:<input name="hausnummer" type="text"><br />
postleitzahl:<input name="postleitzahl" type="text"><br />
ort:<input name="ort" type="text"><br />
passwort:<input name="passwort" type="password"><br />
<input type="submit" value="Absenden">
<input type="hidden" name="task" value="save" />
<!-- Verstecktes Feld für die Tokenüberprüfung -->
<?php echo JHTML::_( 'form.token' ); ?>
</form>
</div>
Funktion in /models/aerzte.php
PHP-Code:
function insertAerztestammdaten($values) {
$db =& JFactory::getDBO();
$query = "INSERT INTO #__aerztestammdaten VALUES ($_POST[angestelltennummer], '$_POST[nachname]','$_POST[vorname]','$_POST[email]','$_POST[geschlecht]','$_POST[geburtsdatum]','$_POST[strasse]','$_POST[hausnummer]','$_POST[postleitzahl]','$_POST[ort]','$_POST[passwort]');";
$db->setQuery($query);
$db->query();
}
Wenn ich das hardcoded in den View schreibe und statt $_POST irgendwelche Werte nehme wird ein neuer Eintrag angelegt, also denk ich dass das vom Ansatz so passt.
Mein Problem ist nun: Wie mache ich das beim Formular mit action=""? In irgendeinem Tutorial habe ich gefunden, dass es ausreicht die index.php (eben mit JRoute) zu nennen, woanders dass der Link zur Komponenten oder gleich zu einem View gehen soll.
Das Weiterleiten auf einen anderen View funktioniert nicht, dann steht - mit Tokenüberprüfung - "invalid token", ohne Überprüfung "Restricted access" (sprich der View bekommt nicht mit dass er von einer anderen J!-Seite aufgerufen wird).

Zitat von
Matrikular
auch wenns nur nen beispielcode ist, das werden unter umstaenden teure 10 minuten.
?!

Zitat von
elkuku
Dass es hierfür Klassen gibt ist mir klar, aber ich scheitere ja schon daran die Formulardaten abzuschicken ... und da bringt mir ein "The Joomla! framework takes care of a lot of this for you. " nicht viel
Danke trotzdem für den Link, vielleicht kann ich mir da irgendwas zambasteln aber sonderlich motivierend ist das nicht wenn man nicht weiß was genau man macht und nur mit try&error eine Lösung findet ...
Und was hat das ganze mit einem MySQL JOIN zu tun? Wie eine SELECT funktioniert steht auch in (fast) jedem Tutorial über Komponentenerstellung und mein INSERT INTO funktioniert grundsätzlich nur was mir fehlt - und das habe ich bisher noch nirgendwo gefunden - ist eben das Absenden des Formulars und die Weitergabe des Daten an eine Datei die das INSERT durchführt, das geht logischerweise nicht in einem Schritt bzw. mit einer Datei.
Im Anhang das was ich bisher habe ... in den Views sind überall noch var_dumps() u.dgl. drinnen zum debugen
Interessant ist eigentlich nur alles mit "aerzte", bei den anderen Sachen soll das ganze dann analog dazu ablaufen.
Edit: Habe mich jetzt noch ein wenig mit dem JTable gespielt --> neuen Ordner "tables" angelegt und darin eine "aerzte.php" sowie die Funktionen in Model + Controller eingefügt. Ergebnis: Wenn ich auf Absenden klicke verschwindet alles aus dem Formular, keine Weiterleitung, kein Fehler und es wird auch nix eingetragen ... Im Anhang die 2te Datei
Lesezeichen