[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Merkzettel - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
jeje
Beiträge: 175
Registriert: 14. Mai 2008, 17:54
Wohnort: Frankfurt/M
Kontaktdaten: Website

Merkzettel

30. Sep 2012, 20:47

Hallo,

ich nutze den Merkzettel (http://www.redaxo.org/de/wiki/index.php?n=R3.Merkzettel) und der funktioniert auch in der 4.3 Version von Redaxo super.

Jetzt wollte ich den Merkzettel per Formular versenden und hier fängt mein Problem an, es finden sich wohl Beschreibungen wie man es Do Form versenden könnte aber leider habe ich das nicht zum laufen bekommen (http://www.redaxo.org/de/forum/addons-f ... 10848.html).

Jetzt habe ich mir ein Formular gebastelt was auch den Merkzettel versendet nur wenn ich versuche das Formular zu überprüfen ob es ausgefüllt wurde funktioniert nichts mehr

Code: Alles auswählen

<?PHP

if ($_GET[action] == "send") {

$empfaenger = "info@mailadresse.de";
$betreff = "Bestellung";

$header  = "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";
$header .= "From: Absender <webmaster@example.com>\r\n";
$header .= "Reply-To: info@mailadresse.de\r\n";
$header .= "X-Sender-IP: $REMOTE_ADDR\r\n";
$header .= "X-Mailer: PHP ". phpversion();
$text = "Name: $_POST[nachname]<br>
Strasse: $_POST[strasse]<br>
Plz / Ort: $_POST[plz] $_POST[ort]<br>
Telefon: $_POST[telefon]<br>
Email: $_POST[email]<br>
Nachricht: $_POST[nachricht]<br> ";
$text .= "<h3>Neue Bestellung<br></h3>";
 
 if (sizeof($_SESSION["shoppingcart"]) != 0) {
    $db_korb = " SELECT * FROM rex_article_slice WHERE modultyp_id = '1'";
    $prods = new rex_sql; $prods->setQuery($db_korb);
    for ($i=0;$i<$prods->getRows();$i++) {
    foreach ($_SESSION['shoppingcart'] as $pid => $id) {
    if ($pid == $prods->getValue("id")) {
    $text .= ' <div class="merkzettel"> ';
    $text .= ' <h3 class="bestellen">'.$id["menge"].' x '.$prods->getValue("value1").' - '.$prods->getValue("value3").', a '.$prods->getValue("value4").'
    <br><a class="minfos" href="'.rex_getUrl($prods->getValue("article_id")).'"> </a>
    </h3>  <a  class="entfernen" href="'.rex_getUrl($this->getValue(article_id), $REX["CUR_CLANG"], array('remove'=>$prods->getValue("id"))).'"> </a></div> ';
    $products_mail .= $id["menge"]." x "; $products_mail .= $prods->getValue("value1")." - ";    $products_mail .= $prods->getValue("value2")."\n";
    $products_mail .= $prods->getValue("value3")." a "; $products_mail .= $prods->getValue("value4")."\n"; } }
    $prods->next(); } ; } else { echo ''; }

mail($empfaenger, $betreff, $text, $header);

    if (@mail($empfaenger, $betreff, $text, $header) === true)
    {
    echo 'Die E-Mail wurde erfolgreich versendet';
    }
    else
    {
    echo 'Die E-Mail konnten nicht versendet werden';
    }
exit;
 }
echo "
<div class='bestell_form'>
  <form name='form1' method='post' action='index.php?article_id=2&action=send'>
    <label>Name:</label>
    <input type='text' class='formtext' name='nachname' id='nachname'>
    <label>Strasse:</label>
    <input type='text' class='formtext' name='strasse' id='strasse'>
    <label>PLZ:</label>
    <input type='text' class='formtext' name='plz' id='plz'>
    <label>Ort:</label>
    <input type='text' class='formtext' name='ort' id='ort'>
    <label>Telefon:</label>
    <input type='text' class='formtext' name='telefon' id='telefon'>
    <label>E-Mail:</label>
    <input type='text' class='formtext' name='email' id='email'>
    <label>Nachrich:</label>
    <textarea class='formtext' rows='2' name='nachricht' cols='20'></textarea>
    <input type='submit' name='send' id='send' value='send' class='formsubmit'>
  </form>
</div>";
?>
kann mir jemand dabei helfen eine Validierung in das Formular einzubauen?

Ich bekomme es leider nicht hin :oops:

Danke und Gruß
Jeje
Nicht ärgern - Lebbe geht weider | Mein-Office | Referenzen

netmanix

Re: Merkzettel

1. Okt 2012, 11:49

Dein do form! - Beitrag ist sehr alt.
Also do form! kann doch den in Deiner Session gespreicherten Warenkorb einfach übertragen.
(Bezeichner für Sessionvariable:)
Wichtig ist, dass Du in der Eingabe die Sessionunterstützung aktiviert hast (Siehe Eingabecode des Moduls)
Auch get-Variablen kann es einfach annehmen und validieren.

Benutzeravatar
jeje
Beiträge: 175
Registriert: 14. Mai 2008, 17:54
Wohnort: Frankfurt/M
Kontaktdaten: Website

Re: Merkzettel

1. Okt 2012, 12:07

Oops,

das wuste ich nicht das ich die Sessionunterstützung aktivieren muss :cry:

Das werde ich gleich mal testen und mich melden

Ich danke Dir erstmal ganz herzlich.

Gruß
Jeje
Nicht ärgern - Lebbe geht weider | Mein-Office | Referenzen

Benutzeravatar
jeje
Beiträge: 175
Registriert: 14. Mai 2008, 17:54
Wohnort: Frankfurt/M
Kontaktdaten: Website

Re: Merkzettel

1. Okt 2012, 12:43

Hallo netmanix,

die Sessionvariable waren in Do Form aktiviert, daran lag es nicht.

Ich hatte die falsche Sessionvariable eingegeben und zwar:

Code: Alles auswählen

$products_mail
statt:

Code: Alles auswählen

products_mail
und Im Formularfeld muss es dann so aussehen

Code: Alles auswählen

sessionvar|Inhalt Warenkorb
Manchmal sind es die Kleinigkeiten die einen zur Verzweiflung bringen :)

Aber trotzdem noch mal herzlichen Dank, mit dem schubser auf die Sessionvariable habe ich den Fehler entdeckt :wink:

Gruß
Jeje
Nicht ärgern - Lebbe geht weider | Mein-Office | Referenzen

Benutzeravatar
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

Re: Merkzettel

4. Feb 2013, 11:49

HI,
ich bräuchte das nun auch ... jedoch mit der xForm.
Wie könnte man den Merkzettel nun mit der xForm versenden.
Danke für jeden Tipp.

grz. Chris

Benutzeravatar
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

Re: Merkzettel

4. Feb 2013, 12:08

hmmm...
die session mit ner foreach-schleife zu durchlaufen und jedes Feld
in ein hidden (hidden|status|default_value||[no_db] ) zu pressen?
Wäre das die Lösung? (hoffe nicht ;))

grz. Chris

Benutzeravatar
jeje
Beiträge: 175
Registriert: 14. Mai 2008, 17:54
Wohnort: Frankfurt/M
Kontaktdaten: Website

Re: Merkzettel

4. Feb 2013, 12:30

Hallo Darwin,

ich habe den Merkzettel leider auch nicht mit xForm zum laufen gebracht, die session wurde bei meinen versuchen leider nie übernommen.

Mit Do Form und "sessionvar|Inhalt Warenkorb" hat es auf Anhieb funktioniert und läuft super.

Gruß
Jochen
Nicht ärgern - Lebbe geht weider | Mein-Office | Referenzen

Benutzeravatar
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

Re: Merkzettel

4. Feb 2013, 18:04

hmm...
also mit nen hidden field der xForm (2.2) funzt es leider nur bedingt bis gar nicht :oops: :(

Code: Alles auswählen

// ----------- Values/Arrays/Vars
$form_products = "";

if (sizeof($_SESSION["shoppingcart"]) != 0)
{

    $output       = array();
    $products     = array();

    $db_korb = "SELECT * FROM rex_article_slice WHERE modultyp_id = '57'";
    $prods = new rex_sql;
    $prods->debugsql = TRUE;
    $prods->setQuery($db_korb);


    $output[] = '<h3 class="merkzettel-title">Bisher auf dem Merkzettel:</h3>';
    
    for ($i=0;$i<$prods->getRows();$i++)
    {

        foreach ($_SESSION['shoppingcart'] as $pid => $id)
        {
        
            if ($pid == $prods->getValue("id"))
            {
                $output[] = '<div class="merkzettel-block">';
            
                $output[] = '<h3>'.$prods->getValue("value1").'</h3>';
                $output[] = '<div>'.$prods->getValue("value2").'</div>';
                $output[] = '<div><b>'.$prods->getValue("value3").'</b> Euro</div>';
                $output[] = '<a href="'.rex_getUrl($this->getValue("article_id"),$REX["CUR_CLANG"],array('remove'=>$prods->getValue("id"))).'" class="button green small">Vom Merkzettel löschen</a>';
                
                $output[] = '</div>';
                
                
                $form_products .=  $prods->getValue("value1");
                $form_products .=  $prods->getValue("value2");
                $form_products .=  $prods->getValue("value3");
        }
        $prods->next();
    }
    
} else {
    $output[] = '<p>Ihr Merkzettel ist leer.</p>';
}

echo join("\n", $output);

if (sizeof($_SESSION["shoppingcart"]) != 0)
{


    $art = OOArticle::getArticleById($article_id);
    $art_name = $art->getName();

    $xform = new rex_xform;
    $xform->setDebug(FALSE);


$form_data = "
hidden|products|$form_products||[no_db]


action|db2email|product-request|email|email@email.de
submit|submit|Anfrage versenden|no_db|submit";

$form_data = trim(str_replace("<br />","",rex_xform::unhtmlentities($form_data)));
$xform->setFormData($form_data);
$xform->setRedaxoVars($article_id,$clang_id);

// Ausgabe
echo $xform->getForm();

}

 
Bedingt ... es gibt mir lediglich so ca 32 Zeichen aus ... mehr nicht :oops:
Jemand eine Idee?

Danke. grz. Chris
Zuletzt geändert von darwin am 5. Feb 2013, 13:51, insgesamt 1-mal geändert.

Benutzeravatar
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

Re: Merkzettel

5. Feb 2013, 13:51

hmm ok xForm (2.2) ist schon wein wenig verstaubt.
hab's jetzt mal auf xForm(2.8) hochgeschraubt; mehr geht nicht da auf dem Server
noch php 5.2.11 läuft :cry: ...

Dennoch ist es nicht (und wahrscheinlich auch vollkommen falsh) möglich
per hidden-Feld den value des Merkzettels komplett mitzugeben ...
egal was ich versuche (strip_slashes etxc pp ) . Es kommen "nur" 42 Zeichen an ... *grmpf*

kann man nciht einfach hier den Value reischreiben

Code: Alles auswählen

html|label|HIER DIE VALUE
und das "html" mit dem Formular mitsenden?
(das "label" wird beim versenden ignoriert)

oder wie fügt man am besten dem BODY noch was an (über die xFORM?)?

Code: Alles auswählen

$form->insertIntoBody = $myInhalt;
Danke. grz. Chris

Benutzeravatar
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

Re: Merkzettel

5. Feb 2013, 14:36

also doch in ein hidden pressen.
Das verketten von Vars

Code: Alles auswählen

$var = 'blabla';
$var .='blubbblubb';
$var .='heyHoheyHo
mach hier probleme.

grz. Chris

*Erledigt*

Zurück zu „Allgemeines [R4]“