Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Produktkonfigurator

Frage Internet

Mitglied: Belearas

Belearas (Level 1) - Jetzt verbinden

11.08.2009, aktualisiert 08:56 Uhr, 4233 Aufrufe, 6 Kommentare

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

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
Mitglied: Baphometh
11.08.2009 um 09:11 Uhr
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
Bitte warten ..
Mitglied: Belearas
11.08.2009 um 09:16 Uhr
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

/**
    • 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[0]->first_child());
}

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

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

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

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

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

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

$tmp = XML::xPath($dom, '/planer/back');
$back = XML::getNodeValue($tmp[0]->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..
Bitte warten ..
Mitglied: empreality
11.08.2009 um 09:59 Uhr
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.
Bitte warten ..
Mitglied: Belearas
11.08.2009 um 10:08 Uhr
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 ;)
Bitte warten ..
Mitglied: godlie
11.08.2009 um 10:28 Uhr
Hallo,

wenn du deinen php code mal unter code tags stellst, kann ichs mir überegen drüber zu lesen...
Bitte warten ..
Mitglied: Belearas
11.08.2009 um 10:35 Uhr
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!

01.
<?php 
02.
 
03.
/** 
04.
 * Function gets param from array escaping "dangerous" signs 
05.
 * (for $_GET || $_REQUEST || ...) 
06.
07.
 * @param mixed $arr The array to read from 
08.
 * @param string $name The index name 
09.
 * @param mixed $default The default return value 
10.
 * @param mixed $mask Bitmask 
11.
 * @return mixed 
12.
 */ 
13.
function getParam( &$arr, $name, $default = NULL, $mask = 0 ) { 
14.
  if (isset($arr[$name])) { 
15.
    return($arr[$name]); 
16.
17.
  else { 
18.
    return $default; 
19.
20.
} //getParam 
21.
 
22.
// if php5 server -> load compatibility file 
23.
if (version_compare(PHP_VERSION, '5', '>=')) { 
24.
  require_once('compat/php5.php'); 
25.
26.
 
27.
 
28.
//if (version_compare(PHP_VERSION, '5', '>=')) { 
29.
//  echo "PHP 5<BR>"; 
30.
//} else { 
31.
//  echo "PHP 4<BR>"; 
32.
//} 
33.
 
34.
// die( "TEST" ); 
35.
 
36.
// load 'user data' 
37.
// require_once('users.php'); 
38.
require_once('xml.php'); 
39.
// require_once('system.php'); 
40.
 
41.
global $site; 
42.
 
43.
function getBasePath( $path ) { 
44.
 
45.
  if (!empty($path)) { 
46.
    $elem = explode(',', $path); 
47.
48.
  else { 
49.
    $elem = array(); 
50.
51.
 
52.
  $expr = "/planer/page"; 
53.
 
54.
  foreach ($elem as $id) { 
55.
    $expr.= "/page[@id='$id']"; 
56.
57.
 
58.
 
59.
  return $expr; 
60.
61.
 
62.
function getSelect( &$dom, $path ) { 
63.
  return XML::xPath($dom, $path . '/select' ); 
64.
65.
 
66.
function getResult( &$dom, $path ) { 
67.
  return XML::xPath($dom, $path .'/result'); 
68.
69.
 
70.
function getSubtitle( &$dom, $path ) { 
71.
  $tmp = XML::xPath($dom, $path . '/title'); 
72.
  return XML::getNodeValue($tmp[0]->first_child()); 
73.
74.
 
75.
function getQuestion( &$dom, $path ) { 
76.
  $tmp = XML::xPath($dom, $path . '/question'); 
77.
  return XML::getNodeValue($tmp[0]->first_child()); 
78.
79.
 
80.
//lode xml document 
81.
$dom = XML::load('planer.xml'); 
82.
 
83.
//load standard page content 
84.
$tmp   = XML::xPath($dom, '/planer/title'); 
85.
$title = XML::getNodeValue($tmp[0]->first_child()); 
86.
 
87.
$tmp   = XML::xPath($dom, '/planer/msg'); 
88.
$msg   = XML::getNodeValue($tmp[0]->first_child()); 
89.
 
90.
$tmp   = XML::xPath($dom, '/planer/error'); 
91.
$error = XML::getNodeValue($tmp[0]->first_child()); 
92.
 
93.
$tmp   = XML::xPath($dom, '/planer/next'); 
94.
$next  = XML::getNodeValue($tmp[0]->first_child()); 
95.
 
96.
$tmp   = XML::xPath($dom, '/planer/back'); 
97.
$back  = XML::getNodeValue($tmp[0]->first_child()); 
98.
 
99.
//load individual content 
100.
$path = getParam($_POST, 'path'); 
101.
$sel  = getParam($_POST, 'selection'); 
102.
 
103.
//init path if necessary 
104.
if (is_null($path)) { 
105.
  $path = ''; 
106.
107.
 
108.
//add previous selection to path 
109.
if (!is_null($sel)) { 
110.
  if (!empty($path)) $path.=  ','; 
111.
  $path.= $sel; 
112.
113.
 
114.
//get the basic xPath 
115.
$basePath = getBasePath($path); 
116.
 
117.
//load selects 
118.
$selects = getSelect($dom, $basePath); 
119.
 
120.
//indicates end of questioning 
121.
$finish = count($selects) == 0; 
122.
 
123.
if ($finish) { 
124.
  $results = getResult($dom, $basePath); 
125.
126.
 
127.
?> 
128.
 
129.
<div id="content_site"> 
130.
 
131.
  <h1><?php print($title); ?></h1> 
132.
 
133.
  <h2><?php print(getSubtitle($dom, $basePath)); ?></h2><br /> 
134.
 
135.
  <?php if (!$finish) { ?> 
136.
 
137.
  <b><?php print(getQuestion($dom, $basePath)); ?></b><BR><BR> 
138.
 
139.
  <form name="mainform" method="post" enctype="multipart/form-data"> 
140.
  <input type="hidden" name="path" value="<?php print($path); ?>"> 
141.
  <?php 
142.
    foreach ($selects as $select) { 
143.
      $elem = $select->first_child(); 
144.
      $id   = XML::getAttribute($select, 'id'); 
145.
      $text = XML::getNodeValue($elem); 
146.
      print("<input type='radio' name='selection' value='$id'>$text</input><br />\n"); 
147.
148.
  ?> 
149.
  </form> 
150.
 
151.
  <?php } else { 
152.
 
153.
    print("<b>$msg</b><BR><BR>"); 
154.
 
155.
    foreach ($results as $result) { 
156.
            $elem = $result->first_child(); 
157.
            readfile('texte/planer/' . XML::getNodeValue($elem)); 
158.
159.
 
160.
  } ?> 
161.
  <br /> 
162.
 
163.
  <?php if (!empty($path)) { ?> 
164.
  <a href="javascript: history.back();"><< <?php print($back); ?></a> 
165.
  <?php } ?> 
166.
 
167.
  <?php if (!empty($path) && !$finish) { ?> 
168.
  &nbsp;&nbsp;|&nbsp;&nbsp; 
169.
  <?php } ?> 
170.
 
171.
  <?php if (!$finish) { ?> 
172.
  <a href="javascript: document.mainform.submit();"><?php print($next); ?> >></a> 
173.
  <?php } ?> 
174.
  <br /> 
175.
  <br /> 
176.
  <br /> 
177.
 
178.
</div>
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(2)

Erfahrungsbericht von ashnod zum Thema Internet ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...