mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 23:40 Benutzername: Passwort: Auto-Login

Thema: AJAX/PHP-Ausgabe mit zwei Select-Boxen vom 28.03.2012

Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> AJAX/PHP-Ausgabe mit zwei Select-Boxen
Autor Nachricht
leeyujin2107
Threadersteller

Dabei seit: 28.03.2012
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 28.03.2012 22:03
Titel

AJAX/PHP-Ausgabe mit zwei Select-Boxen

Antworten mit Zitat Zum Seitenanfang

Hallo,

ich bin neu hier und wende mich an euch, weil ich ein Problem habe, bei dem ich irgendwie nicht weiter komme, vor allem auch, weil ich dazu keine für mich verständliche Lösung im Internet finden kann. Es geht dabei um eine Webseite mit AJAX-Funktionalität. Die AJAX-Anwendung besteht daraus, dass ich zwei Select-Boxen habe, wenn ich in der ersten Select-Box eine Option aussuche, dann werden in der zweiten Select-Box die Optionen aus einer XML-Instanz ausgegeben. Nun habe ich insgesamt 3 Themenbereiche in einer HTML-Tabelle, also jeweils 6 Select-Boxen. Das alles funktioniert auch. Im nächsten Schritt möchte ich dann beim Anklicken einer Option in der 2. Select-Box in einem div-Container die Beschreibung dazu bekommen, die wiederum aus einer XML-Instanz gelesen wird. Das funktioniert auch. Das Problem ist allerdings, dass ich in der zweiten Select-Box mehrere Optionen habe, aber beim Anklicken einer Option die Beschreibungen aller Optionen im div-Container angezeigt werden. Ich habe versucht, dass mit einem switch-case Statement zu machen, aber irgendwie hat es nicht funktioniert. Ich poste mal alles, was ich habe. Über jeden Ratschlag wäre ich euch dankbar.

Relevanter HTML-Code:

[code]<td><form method="post">
<!-- Ajax call to make up php -->
<select name="makeup" onchange="eyemakeupAJAX('makeup1.php', 'ch='+this.value)" />
<option value="0">-Select a product-</option>
<option value="Eyeshadow">Eyeshadow</option>
<option value="Eyeliner">Eyeliner</option>
<option value="Mascara">Mascara</option>
<option value="Lashes">Lashes</option>
</select>
<!--Die zweite Augenmakeup-Select-Box-->
<select name="txtEyes" id="txtEyes" onChange="loadContent()">
<option value="a"></option>
<option value="Eyeshadow00"></option>
<option value="Eyeshadow01"></option>
<option value="Eyeshadow02"></option>

<option value="b"></option>
<option value="Eyeliner00"></option>
<option value="Eyeliner01"></option>
<option value="Eyeliner02"></option>

<option value="c"></option>
<option value="Mascara00"></option>
<option value="Mascara01"></option>
<option value="Mascara02"></option>

<option value="d"></option>
<option value="Lashes00"></option>
<option value="Lashes01"></option>
<option value="Lashes02"></option>
</select>
</form>
</td>

<td>
<form method="post">
<!-- Ajax call to make up php -->
<select name="lipmakeup" onchange="lipmakeupAJAX('makeup1.php', 'ch='+this.value)" />
<option value="1">-Select a product-</option>
<option value="Lipstick">Lipstick</option>
<option value="Lipgloss">Lipgloss</option>
<option value="Lip-Pencil">Lip-Pencil</option>
<option value="Lipcare">Lipcare</option>
</select>
<!--Die zweite Lippenmakeup-Select-Box-->
<select name="txtLips" id="txtLips" onChange="loadContent1()">
<option value="e"></option>
<option value="Lipstick00"></option>
<option value="Lipstick01"></option>
<option value="Lipstick02"></option>

<option value="f"></option>
<option value="Lipgloss00"></option>
<option value="Lipgloss01"></option>
<option value="Lipgloss02"></option>

<option value="g"></option>
<option value="Lip-Pencil00"></option>
<option value="Lip-Pencil01"></option>
<option value="Lip-Pencil02"></option>

<option value="h"></option>
<option value="Lipcare00"></option>
<option value="Lipcare01"></option>
<option value="Lipcare02"></option>
</select>
</form>
</td>

<td>
<form method="post">
<!-- Ajax call to make up php -->
<select name="facemakeup" onchange="facemakeupAJAX('makeup1.php', 'ch='+this.value)" />
<option value="2">-Select a product-</option>
<option value="Foundation">Foundation</option>
<option value="Powder">Powder</option>
<option value="Concealer">Concealer</option>
<option value="Blush">Blush</option>
</select>
<!--Die zweite Facemakeup-Select-Box-->
<select name="txtFace" id="txtFace" onChange="loadContent2()">
<option value="i"></option>
<option value="Foundation00"></option>
<option value="Foundation01"></option>
<option value="Foundation02"></option>

<option value="j"></option>
<option value="Powder00"></option>
<option value="Powder01"></option>
<option value="Powder02"></option>

<option value="k"></option>
<option value="Concealer00"></option>
<option value="Concealer01"></option>
<option value="Concealer02"></option>

<option value="l"></option>
<option value="Blush00"></option>
<option value="Blush01"></option>
<option value="Blush02"></option>
</select>
</form>
</td>
</tr>
</table>
<div id="loadContent"></div>
</td> [/code]

Dann meine zweite Javascript-Datei zum Laden der Optionen im div-Container:

[code]var xmlHttpObject = false;

if (typeof XMLHttpRequest != 'undefined')
{
xmlHttpObject = new XMLHttpRequest();
}
if (!xmlHttpObject)
{
try
{
xmlHttpObject = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
xmlHttpObject = null;
}
}
}

function loadContent()
{
xmlHttpObject.open('get','makeup2.php');
xmlHttpObject.onreadystatechange = handleContent;
xmlHttpObject.send(null);
return false;
}
function loadContent1()
{
xmlHttpObject.open('get','makeup3.php');
xmlHttpObject.onreadystatechange = handleContent;
xmlHttpObject.send(null);
return false;
}
function loadContent2()
{
xmlHttpObject.open('get','makeup4.php');
xmlHttpObject.onreadystatechange = handleContent;
xmlHttpObject.send(null);
return false;
}

function handleContent()
{
if (xmlHttpObject.readyState == 4)
{
document.getElementById('loadContent').innerHTML = xmlHttpObject.responseText;
}
}[/code]

und eine meiner PHP-Dateien, in diesem Beispiel makeup2.php:


[code]<?php
$xml = simplexml_load_file('test.xml');
// Description Eyeshadow
echo $xml->eyes[0]->device[0]->name[0]->description[0];
?>
<br/><br/>
<?php
echo $xml->eyes[0]->device[0]->name[1]->description[0];
?>
<br/><br/>
<?php
echo $xml->eyes[0]->device[0]->name[2]->description[0];
?>
<br/><br/>
<?php // Description Eyeliner
echo $xml->eyes[0]->device[1]->name[0]->description[0];
?>
<br/><br/>
<?php
echo $xml->eyes[0]->device[1]->name[1]->description[0];
?>
<br/><br/>
<?php
echo $xml->eyes[0]->device[1]->name[2]->description[0];
?>
<br/><br/>
<?php // Description Mascara
echo $xml->eyes[0]->device[2]->name[0]->description[0];
?>
<br/><br/>
<?php
echo $xml->eyes[0]->device[2]->name[1]->description[0];
?>
<br/><br/>
<?php
echo $xml->eyes[0]->device[2]->name[2]->description[0];
?>
<br/><br/>
<?php // Description Lashes
echo $xml->eyes[0]->device[3]->name[0]->description[0];
?>
<br/><br/>
<?php
echo $xml->eyes[0]->device[3]->name[1]->description[0];
?>
<br/><br/>
<?php
echo $xml->eyes[0]->device[3]->name[2]->description[0];
?>
<br/><br/>


<?php // Description Lipstick
echo $xml->lips[0]->device[0]->name[0]->description[0];
?>
<br/><br/>
<?php
echo $xml->lips[0]->device[0]->name[1]->description[0];
?>
<br/><br/>
<?php
echo $xml->lips[0]->device[0]->name[2]->description[0];
?>
<br/><br/>
<?php
// Description Lipgloss
echo $xml->lips[0]->device[1]->name[0]->description[0];
?>
<br/><br/>
<?php
echo $xml->lips[0]->device[1]->name[1]->description[0];
?>
<br/><br/>
<?php
echo $xml->lips[0]->device[1]->name[2]->description[0];
?>
<br/><br/>
<?php
// Description Lip-Pencil
echo $xml->lips[0]->device[2]->name[0]->description[0];
?>
<br/><br/>
<?php
echo $xml->lips[0]->device[2]->name[1]->description[0];
?>
<br/><br/>
<?php
echo $xml->lips[0]->device[2]->name[2]->description[0];
?>
<br/><br/>
<?php
// Description Lipbalm
echo $xml->lips[0]->device[3]->name[0]->description[0];
?>
<br/><br/>
<?php
echo $xml->lips[0]->device[3]->name[1]->description[0];
?>
<br/><br/>
<?php
echo $xml->lips[0]->device[3]->name[2]->description[0];
?>
<br/><br/>


<?php // Description Foundation
echo $xml->face[0]->device[0]->name[0]->description[0];
?>
<br/><br/>
<?php
echo $xml->face[0]->device[0]->name[1]->description[0];
?>
<br/><br/>
<?php
echo $xml->face[0]->device[0]->name[2]->description[0];
?>
<br/><br/>
<?php
// Description Powder
echo $xml->face[0]->device[1]->name[0]->description[0];
?>
<br/><br/>
<?php
echo $xml->face[0]->device[1]->name[1]->description[0];
?>
<br/><br/>
<?php
echo $xml->face[0]->device[1]->name[2]->description[0];
?>
<br/><br/>
<?php
// Description Concealer
echo $xml->face[0]->device[2]->name[0]->description[0];
?>
<br/><br/>
<?php
echo $xml->face[0]->device[2]->name[1]->description[0];
?>
<br/><br/>
<?php
echo $xml->face[0]->device[2]->name[2]->description[0];
?>
<br/><br/>
<?php
// Description Blush
echo $xml->face[0]->device[3]->name[0]->description[0];
?>
<br/><br/>
<?php
echo $xml->face[0]->device[3]->name[1]->description[0];
?>
<br/><br/>
<?php
echo $xml->face[0]->device[3]->name[2]->description[0];
?>
[/code]

Die Switch-Anweisung habe ich wieder weggemacht, da sie ja eh nicht funktioniert hat. Bin totaler AJAX/PHP Newbie, sorry!!!
  View user's profile Private Nachricht senden
Ähnliche Themen PHP Formular: Select Boxen abfragen?
select-Boxen per PHP dynamisch aus ner DB füllen
AJAX Problem - zwei funktionen - eine funzt
[MySQL] Ausgabe nach zwei Feldern orden
[Ajax] Prototype Funktion Ajax.Updater - Brauche Hilfe
select-box option aktiviert select-box
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.