belearas
Goto Top

Produktkonfigurator

Hallo, und einen wunderschönen guten morgen!

Ich möchte gerne für meine Homepage einen Produktkonfigurator erstellen, am besten zu lösen wohl mit PHP.

Ich würde ihn liebend gerne alleine machen, mir fehlt jedoch die .. wie soll ich sagen, ich habe im kopf eine leise vorstellung wies gehen könnte, php mit xml datei eventuell,
jedoch bekomme ich nichts in die finger, und kann nichts schreiben, mir fehlt dann doch zuviel das know how im php.

Meistens bekommt man als antwort nur irgendwelche links die zu php "anfänger" seiten führen, wo get$ oder echo erklärt wird.. also sinnhaftigkeit null..

Hätte jemand eine idee, wie ich das am besten anstellen könnte? oder kennt jemand eine anleitung dafür?

Habe im google schon geschaut, finde leider nixx face-sad

im endefekt geht es darum das ich so einen aufbau habe...


Wählen Sie ihr Produkt


Produkt1 -->
Produkt2
Produkt3

Weiter | Zurück

Title/Produkt1

Wählen Sie die Art des Geschehens

Blabla 1
blabla 2

oder wählen sie das produkt in diesen bereich

Produkt 4
Produkt 5
Produkt 6


Weiter | Zurück


bitte um hilfe leute face-sad

Content-Key: 122456

Url: https://administrator.de/contentid/122456

Printed on: April 24, 2024 at 01:04 o'clock

Member: Baphometh
Baphometh Aug 11, 2009 at 07:11:03 (UTC)
Goto Top
Meistens bekommt man als antwort nur irgendwelche links die zu php
"anfänger" seiten führen, wo get$ oder echo
erklärt wird.. also sinnhaftigkeit null..

Sorry Balearas, aber genau diese Seiten solltest Du Dir dann auch mal reinziehen.

Dann hat sich Dein Problem nämlich von selbst erledigt. Wenn Du erst mal die Grundzüge von PHP begriffen hast, sollte es nämlich kein Problem mehr darstellen, Deinen Produktkonfigurator zu erstellen.

Gruß

Baphi
Member: Belearas
Belearas Aug 11, 2009 at 07:16:09 (UTC)
Goto Top
ich arbeite ja in php.. wenn ich einen aufbau habe, die funktionsweise habe wie er funktionieren sollte, dann kann ich mir das auch aneignen, aber was bringt dem bauer eine mistgabel wenn er keinen mist findet...

schau..
ich habe hier den alten

der sieht so aus

[php]
<?php

/**
$_REQUEST
    • @param mixed $arr The array to read from
    • @param string $name The index name
    • @param mixed $default The default return value
    • @param mixed $mask Bitmask
    • @return mixed
*/
function getParam( &$arr, $name, $default = NULL, $mask = 0 ) {
if (isset($arr[$name])) {
return($arr[$name]);
}
else {
return $default;
}
} getParam

if php5 server -> load compatibility file
if (version_compare(PHP_VERSION, '5', '>=')) {
require_once('compat/php5.php');
}


if (version_compare(PHP_VERSION, '5', '>=')) {
echo "PHP 5<BR>";
} else {
echo "PHP 4<BR>";
}

die( "TEST" );

load 'user data'
require_once('users.php');
require_once('xml.php');
require_once('system.php');

global $site;

function getBasePath( $path ) {

if (!empty($path)) {
$elem = explode(',', $path);
}
else {
$elem = array();
}

$expr = "/planer/page";

foreach ($elem as $id) {
$expr.= "/page[@id='$id']";
}


return $expr;
}

function getSelect( &$dom, $path ) {
return XML::xPath($dom, $path . '/select' );
}

function getResult( &$dom, $path ) {
return XML::xPath($dom, $path .'/result');
}

function getSubtitle( &$dom, $path ) {
$tmp = XML::xPath($dom, $path . '/title');
return XML::getNodeValue($tmp->first_child());
}

function getQuestion( &$dom, $path ) {
$tmp = XML::xPath($dom, $path . '/question');
return XML::getNodeValue($tmp->first_child());
}

lode xml document
$dom = XML::load('planer.xml');

load standard page content
$tmp = XML::xPath($dom, '/planer/title');
$title = XML::getNodeValue($tmp->first_child());

$tmp = XML::xPath($dom, '/planer/msg');
$msg = XML::getNodeValue($tmp->first_child());

$tmp = XML::xPath($dom, '/planer/error');
$error = XML::getNodeValue($tmp->first_child());

$tmp = XML::xPath($dom, '/planer/next');
$next = XML::getNodeValue($tmp->first_child());

$tmp = XML::xPath($dom, '/planer/back');
$back = XML::getNodeValue($tmp->first_child());

load individual content
$path = getParam($_POST, 'path');
$sel = getParam($_POST, 'selection');

init path if necessary
if (is_null($path)) {
$path = '';
}

add previous selection to path
if (!is_null($sel)) {
if (!empty($path)) $path.= ',';
$path.= $sel;
}

get the basic xPath
$basePath = getBasePath($path);

load selects
$selects = getSelect($dom, $basePath);

//indicates end of questioning
$finish = count($selects) == 0;

if ($finish) {
$results = getResult($dom, $basePath);
}

?>

<div id="content_site">

<h1><?php print($title); ?></h1>

<h2><?php print(getSubtitle($dom, $basePath)); ?></h2><br />

<?php if (!$finish) { ?>

<?php print(getQuestion($dom, $basePath)); ?><BR><BR>

<form name="mainform" method="post" enctype="multipart/form-data">
<input type="hidden" name="path" value="<?php print($path); ?>">
<?php
foreach ($selects as $select) {
$elem = $select->first_child();
$id = XML::getAttribute($select, 'id');
$text = XML::getNodeValue($elem);
print("<input type='radio' name='selection' value='$id'>$text</input><br />\n");
}
?>
</form>

<?php } else {

print("$msg<BR><BR>");

foreach ($results as $result) {
$elem = $result->first_child();
readfile('texte/planer/' . XML::getNodeValue($elem));
}

} ?>
<br />

<?php if (!empty($path)) { ?>
<a href="javascript: history.back();"><< <?php print($back); ?></a>
<?php } ?>

<?php if (!empty($path) && !$finish) { ?>
&nbsp;&nbsp;|&nbsp;&nbsp;
<?php } ?>

<?php if (!$finish) { ?>
<a href="javascript: document.mainform.submit();"><?php print($next); ?> >></a>
<?php } ?>
<br />
<br />
<br />

</div>
[/php]

den unteren teil verstehe ich voll und ganz, und ich hätte auch diesen umändern können für meine bedürfnisse, jedoch haben mir schon einige leute gesagt das dieser hier viel zu umständlich ist, und es am besten wäre einen neuen zu erstellen!

wenn ich einen ansatz habe, welche attribute ich brauche usw kann ich das auch erstellen, oder wenn jemand wirklich eine seite hat wo ich daraus lernen könnte..
Member: empreality
empreality Aug 11, 2009 at 07:59:46 (UTC)
Goto Top
Gerade bei durchaus komplex werdenen Dingen wie so einem Konfigurator kann man nicht einfach irgendwelche Vorlagen zusammenkopieren und hoffen dass es dann iwie geht.

wenn du nicht programmieren kannst dann lerne es, und das fängt nunmal ganz unten an oder übergebe den auftrag an jemanden der es kann.

aber poste nicht iwelche code-snippets ohne zusammenhang und erwarte dass dir jemand einen konfiguration draus bastelt.
Member: Belearas
Belearas Aug 11, 2009 at 08:08:39 (UTC)
Goto Top
das ist die typische antwort, erwarte nicht das es dir jemand bastelt...

ich mache ihn selbst... keine sorge ;)

das problem ist einfach das es soviele wege gibt die man nehmen kann, php ist so umfangreich, es gibt 1000 varianten wie man es erstellen könnte, mit verbindung eines XML dokuments, oder nur einen php dokuments, man arbeitets mit id´s und wirft diese aus, oder man arbeitet mit aktuellen auswahlen...

mir geht es um eine anregung, nicht um eine fertigstellung eines planers.


es geht einfach darum, mein arbeitskollege der php programmierer ist noch bis Montag auf urlaub, ich möchte aber trotzdem ohne ihn weiterarbeiten, und ich weis wenn er sich das
"geschnippsel" was du meinst kurz ansieht, das er in etwa nichtmal 2 minuten den planer so umgeschrieben hat das er funktioniert ohne das ich ihn neu erstellen muss, aber das ist
mir egal, ich bin gerne am arbeiten und möchte auch einen neuen machen.

wenn du dir selbst schwer tust im php und du stunden brauchen würdest dafür versehe ich deine antwort, aber ich weis ganz genau das es leute
gibt die einfach KURZ drüber lesen und fertig sind ... und genau solche leute versuche ich ja anzusprechen, ich verlange nicht einen baum aufzuheben der 3tonnen hat, das wäre für
jeden hier zu schwer, aber es gibt eben dinge die können manche nicht so gut, und manche eben schon. php muss man jahrelang lernen, um es zu verstehen, da helfen diese online
"guides" genau garnichts. ich habe auch nicht vor nun jahrelang php zu studieren, dafür habe ich andere dinge auch zutun ;)

ich bin gut im hardware bereich, dafür gebe ich auch hilfe in diesen bereichen, und poste dann nicht "schau doch einfach mal zum service"

Leider wird das in foren immer falsch verstanden, ich erwarte keine arbeitabnahme, denn was für mich hier fleischarbeit wäre, ist für einen phpler
ein kurzes grinsen in feustchen und das wars.


"danke" für die "antworten"

ich probiers im google weiter ;)
Member: godlie
godlie Aug 11, 2009 at 08:28:18 (UTC)
Goto Top
Hallo,

wenn du deinen php code mal unter code tags stellst, kann ichs mir überegen drüber zu lesen...
Member: Belearas
Belearas Aug 11, 2009 at 08:35:59 (UTC)
Goto Top
Hallo godlie!

Im endefekt geht es mir ja darum, das bei dem momentanen planer das problem besteht, das ich nur einen $title und eine question stellen kann.

ich habe schon probiert einen weiteren title und eine weitere question hinzuzufügen, jedoch scheitere ich...

momentanes ausgabeformat sieht so aus

Title

Produkt
Produkt

weiter | züruck

ich hätte halt gerne mehrere

z.b. so

Title

produkt
produkt

Title

produkt
produkt
produkt

weiter | zurück

hier nochmal code, danke fürs ansehen!

<?php

/**
 * Function gets param from array escaping "dangerous" signs 
 * (for $_GET || $_REQUEST || ...)
 *
 * @param mixed $arr The array to read from
 * @param string $name The index name
 * @param mixed $default The default return value
 * @param mixed $mask Bitmask
 * @return mixed
 */
function getParam( &$arr, $name, $default = NULL, $mask = 0 ) {
  if (isset($arr[$name])) {
    return($arr[$name]);
  }
  else {
    return $default;
  }
} //getParam

// if php5 server -> load compatibility file
if (version_compare(PHP_VERSION, '5', '>=')) {  
  require_once('compat/php5.php');  
}


//if (version_compare(PHP_VERSION, '5', '>=')) { 
//  echo "PHP 5<BR>"; 
//} else {
//  echo "PHP 4<BR>"; 
//}

// die( "TEST" ); 

// load 'user data' 
// require_once('users.php'); 
require_once('xml.php');  
// require_once('system.php'); 

global $site;

function getBasePath( $path ) {

  if (!empty($path)) {
    $elem = explode(',', $path);  
  }
  else {
    $elem = array();
  }

  $expr = "/planer/page";  

  foreach ($elem as $id) {
    $expr.= "/page[@id='$id']";  
  }


  return $expr;
}

function getSelect( &$dom, $path ) {
  return XML::xPath($dom, $path . '/select' );  
}

function getResult( &$dom, $path ) {
  return XML::xPath($dom, $path .'/result');  
}

function getSubtitle( &$dom, $path ) {
  $tmp = XML::xPath($dom, $path . '/title');  
  return XML::getNodeValue($tmp->first_child());
}

function getQuestion( &$dom, $path ) {
  $tmp = XML::xPath($dom, $path . '/question');  
  return XML::getNodeValue($tmp->first_child());
}

//lode xml document
$dom = XML::load('planer.xml');  

//load standard page content
$tmp   = XML::xPath($dom, '/planer/title');  
$title = XML::getNodeValue($tmp->first_child());

$tmp   = XML::xPath($dom, '/planer/msg');  
$msg   = XML::getNodeValue($tmp->first_child());

$tmp   = XML::xPath($dom, '/planer/error');  
$error = XML::getNodeValue($tmp->first_child());

$tmp   = XML::xPath($dom, '/planer/next');  
$next  = XML::getNodeValue($tmp->first_child());

$tmp   = XML::xPath($dom, '/planer/back');  
$back  = XML::getNodeValue($tmp->first_child());

//load individual content
$path = getParam($_POST, 'path');  
$sel  = getParam($_POST, 'selection');  

//init path if necessary
if (is_null($path)) {
  $path = '';  
}

//add previous selection to path
if (!is_null($sel)) {
  if (!empty($path)) $path.=  ',';  
  $path.= $sel;
}

//get the basic xPath
$basePath = getBasePath($path);

//load selects
$selects = getSelect($dom, $basePath);

//indicates end of questioning
$finish = count($selects) == 0;

if ($finish) {
  $results = getResult($dom, $basePath);
}

?>

<div id="content_site">  

  <h1><?php print($title); ?></h1>

  <h2><?php print(getSubtitle($dom, $basePath)); ?></h2><br />

  <?php if (!$finish) { ?>

  <b><?php print(getQuestion($dom, $basePath)); ?></b><BR><BR>

  <form name="mainform" method="post" enctype="multipart/form-data">  
  <input type="hidden" name="path" value="<?php print($path); ?>">  
  <?php
    foreach ($selects as $select) {
      $elem = $select->first_child();
      $id   = XML::getAttribute($select, 'id');  
      $text = XML::getNodeValue($elem);
      print("<input type='radio' name='selection' value='$id'>$text</input><br />\n");  
    }
  ?>
  </form>

  <?php } else {

    print("<b>$msg</b><BR><BR>");  

    foreach ($results as $result) {
            $elem = $result->first_child();
            readfile('texte/planer/' . XML::getNodeValue($elem));  
    }

  } ?>
  <br />

  <?php if (!empty($path)) { ?>
  <a href="javascript: history.back();"><< <?php print($back); ?></a>  
  <?php } ?>

  <?php if (!empty($path) && !$finish) { ?>
  &nbsp;&nbsp;|&nbsp;&nbsp;
  <?php } ?>

  <?php if (!$finish) { ?>
  <a href="javascript: document.mainform.submit();"><?php print($next); ?> >></a>  
  <?php } ?>
  <br />
  <br />
  <br />

</div>