Index definieren und Condition für Suchfunktion

Fragen zum Erstellen von Templates für webEdition.
urlaubsland-polen
Senior Member
Beiträge: 420
Registriert: Mo 13. Nov 2006, 12:23
Wohnort: Olsztyn, zuvor Warszawa
Kontaktdaten:

Index definieren und Condition für Suchfunktion

Beitragvon urlaubsland-polen » Do 16. Feb 2012, 01:24

Hallo Gemeinde. Ich komme mit einem Problem nicht weiter. Bei einer Suchfunktion mit Objekten zeigen sich Notices "Undefined index:" Wie bekomme ich dies weg? Wo habe ich zu suchen?

Bei der Suche werden die Select-Felder mit den vorhandenen Objekten dynamisch gefüllt.

Code: Alles auswählen


<?php
$Stadt = $_REQUEST["Ort"];
$Region = $_REQUEST["Region"];
$Kategorie = $_REQUEST["Kategorie"];
$Typ = $_REQUEST["Typ"];
?>

<we:form name="auswahl" id="self">
  <we:listview type="object" name="region" classid="4" order="region">
    
    <b>Region:</b>&nbsp;<select name="Region">
    <option value="">Bitte wählen</option>
    <we:repeat>
      
      <?php
  if($GLOBALS['my']['lastvalue'] != $GLOBALS['lv']->f('region')){
    $GLOBALS['my']['lastvalue'] = $GLOBALS['lv']->f('region');
    if ($Region==$GLOBALS['lv']->f('region'))
    {
      ?>
      
      <option value="<?php echo $GLOBALS['lv']->f('region'); ?>" selected><?php echo $GLOBALS['lv']->f('region'); ?></option>
      
      <?php
    }
    else
    {
      ?>
      <option value="<?php echo $GLOBALS['lv']->f('region'); ?>"><?php echo $GLOBALS['lv']->f('region'); ?></option>
      
      <?php
    }}
  ?>
      
    </we:repeat>
    </select>
  </we:listview>
...
Das gleiche für Ort, Typ und Kategorie
...
  <input type="submit" value="Suche starten">
</we:form>
Der zweite Teil der Frage betrifft die Condition. Ich würde gern bei der Auswahl die Felder "region", "ort", "kategorie" und "typ" auswerten (einzeln und kombiniert). Das mit den we:condition überschaue ich noch nicht. Hat jemand eine Idee?

Code: Alles auswählen

<we:condition name="cond">
  
  <we:ifVarNotEmpty match="Ort" type="request">
    <we:setVar from="request" to="global" namefrom="Ort" nameto="Ort"/>
    <we:conditionAdd field="ort" var="Ort" compare="="/>
    <we:conditionAND/>
      <we:else/>
    <we:ifVarNotEmpty match="Region" type="request">
      <we:conditionAND/>
      <we:else/>
      <we:ifVarNotEmpty match="Typ" type="request">
        <we:conditionAND/>
        <we:else/>
        <we:ifVarNotEmpty match="Kategorie" type="request">
          <we:conditionAND/>
        </we:ifvarNotEmpty>
      </we:ifvarNotEmpty>
    </we:ifVarNotEmpty>
  </we:ifVarNotEmpty>
  
  <we:ifVarNotEmpty match="Region" type="request">
    <we:setVar from="request" to="global" namefrom="Region" nameto="Region"/>
    <we:conditionAdd field="region" var="Region" compare="="/>
    <we:ifVarNotEmpty match="Typ" type="request">
      <we:conditionAND/>
      <we:else/>
      <we:ifVarNotEmpty match="Kategorie" type="request">
        <we:conditionAND/>
      </we:ifVarNotEmpty>
    </we:ifVarNotEmpty>
  </we:ifVarNotEmpty>
  
  <we:ifVarNotEmpty match="Typ" type="request">
    <we:setVar from="request" to="global" namefrom="Typ" nameto="Typ"/>
    <we:conditionAdd field="typ" var="Typ" compare="="/>
    <we:ifVarNotEmpty match="Kategorie" type="request">
      <we:conditionAND/>
    </we:ifVarNotEmpty>
  </we:ifVarNotEmpty>
  
  <we:ifVarNotEmpty match="Kategorie" type="request">
    <we:setVar from="request" to="global" namefrom="Kategorie" nameto="Kategorie"/>
    <we:conditionAdd field="kategorie" var="Kategorie" compare="="/>
  </we:ifVarNotEmpty>
  
</we:condition>

<we:listview name="hotel" type="object" rows="5" order="kategorie" desc="true" classid="4" objectseourls="true" hidedirindex="true" condition="\$cond">
  ...
</we:listview>

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Index definieren und Condition für Suchfunktion

Beitragvon mokraemer » Do 16. Feb 2012, 15:07

undefined Index: kommt vermutlich aus

Code: Alles auswählen

$Stadt = $_REQUEST["Ort"];
wenn im Request die Variable nicht gesetzt ist, dann bekommst du die Notice. Das ist in php etwas blöd, das man das nicht irgendwie direkt machen kann, denn hier muß man immer schreiben:

Code: Alles auswählen

$Stadt = (isset($_REQUEST["Ort"])?$_REQUEST["Ort"]:'');

mit der Condition kann vielleicht jemand anders besser was zu sagen.
webEdition-Kern-Entwickler

urlaubsland-polen
Senior Member
Beiträge: 420
Registriert: Mo 13. Nov 2006, 12:23
Wohnort: Olsztyn, zuvor Warszawa
Kontaktdaten:

Re: Index definieren und Condition für Suchfunktion

Beitragvon urlaubsland-polen » Do 16. Feb 2012, 17:09

@Marc: Danke das hat schon sehr geholfen.

Nachdem ich nun auch "my" definiert habe, kommte ein Notice "Uninitialized string offset: 0"

Code: Alles auswählen

$my = (isset($_REQUEST["my"])?$_REQUEST["my"]:'');
Aber wo wird wohl das Problem liegen? Bei Zustand "selected" wird auf der Folgeseite die gewählte Option als "ausgewählt" angezeigt.

Code: Alles auswählen

  <we:listview type="object" name="region" classid="4" order="region">
   
    <b>Region:</b>&nbsp;<select name="Region">
    <option value="">Bitte wählen</option>
    <we:repeat>
     
      <?php
  if($GLOBALS['my']['lastvalue'] != $GLOBALS['lv']->f('region')){
    $GLOBALS['my']['lastvalue'] = $GLOBALS['lv']->f('region');
    if ($Region==$GLOBALS['lv']->f('region'))
    {
      ?>
     
      <option value="<?php echo $GLOBALS['lv']->f('region'); ?>" selected><?php echo $GLOBALS['lv']->f('region'); ?></option>
     
      <?php
    }
    else
    {
      ?>
      <option value="<?php echo $GLOBALS['lv']->f('region'); ?>"><?php echo $GLOBALS['lv']->f('region'); ?></option>
     
      <?php
    }}
  ?>
     
    </we:repeat>
    </select>
  </we:listview>


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 22 Gäste