if selected -> include Datei

arraybreak

Erfahrenes Mitglied
Tag Zusammen,

komme gerade nicht weiter, hab schon alles im Netz durchforstet aber keine Lösung gefunden.

Mein Vorhaben, wenn eine Option ausgewählt wird, sollte eine Datei includiert werden.
Beispiel meine Auswahl:
HTML:
<div id="1_set">
    <select id="MYONE" name="MYONE" size="1" onchange="Del_Data()">   
      <option id="auswahl1" value="Audi">Audi</option>
      <option id="auswahl2" value="BMW">BMW</option>
    </select>
</div>

Sollte jemand "Audi" auswählen, sollte eine neue Datei includiert werden.
Ungefähr so:
PHP:
if ("option[Audi]selected") -> include ("audi.php")


PS: Ist es möglich, keine neue Seite zu includieren, sondern nur einen versteckten Bereich in der selben Datei?

Hoffe ich stresse euch nicht zu viel :)

LG
 
PHP:
if($_GET['MYONE'] == 'Audi'){
    include('audi.php');
}else{
    include('bmw.php');
}
Funktioniert allerdings nur, wenn das ganze ein Formular ist und mittels GET gesendet wird.
Ansonsten gebe es noch die AJAX Möglichkeit, ich benutze hierfür gerne jQuery.
Du bindest ein onchange Event auf das Select und holst dir den Value, anschließen stellst du einen request mittels AJAX ($.post / $.get / $.load) an den Server und holst dir die Daten.
 
Zuletzt bearbeitet:
Erstmal Danke für deine Antwort. Wenn ich richtig verstehe, kann ich dein Beispiel mit GET oder POST nicht verwenden, da ich das Formular noch nicht abschicken will, sondern ein nächstes, verstecktes Bereich einblenden will.
So hatte ich das geplannt, leider funktioniert es mit mit DIV nicht.

hier das Beispiel:

Select zur Sprachen Auswahl:
HTML:
    <select id="sprach_auswahl" name="sprach_auswahl" size="1" onchange="Del_Data()">
      <option id="german_de" value="Deutsch">Deutsch</option>
      <option id="english_en" value="English">English</option>
    </select>
mit folgendem jQuery, der dann bestimmt welche der nachfolgender Auswahl eingeblendet werden soll, für eine neue, zusätzliche Selectauswahl.
Javascript:
jQuery(document).ready(function($) {      
jQuery('#german_set, #russian_set').hide();
 
$("select[name='sprach_auswahl']").change ( function() {
if ($("option[id='german_de']:selected").val()){$("#english_set").hide(); $("#german_set").show(); }
if ($("option[id='english_en']:selected").val()){$("#german_set").hide(); $("#english_set").show(); }       
  });
});

Danach müsste entweder die eine oder andere zusätzliche Auswahl erscheinen, die weiter unten ist:
Und hier ist das Problem, eine der beiden Auswahlmöglichkeiten, muss versteckt sein, weil beide Selects die gleiche ID's innen drin haben, dann gibts Probleme beim abschicken des Formulars
HTML:
  <div id="german_set">
    <select name="name1" size="1" onchange="Del_Data()">
      <option id="Audi" name="name1" value="Audi_de">Audi DE</option>
      <option id="BMW" name="name1" value="BMW_de">BMW DE</option>
     </select>
</div>

<div id="english_set" >
    <select name="name1" size="1" onchange="Del_Data()">
      <option id="Audi" name="name1" value="Audi_en">Audi EN</option>
      <option id="BMW" name="name1" value="BMW_en">BMW EN</option>
    </select>   
</div>

Ich weiss, voll verwirrend, vielleicht verstehst du aber was ich meine :D
 
Achso...ja jetzt versteh ichs :D
Machs doch wie folgt:
Nehm die beiden Selects aus dem <form> raus und setze in das form ein hidden input welches du je nach auswahl mittels jQuery füllst.
HTML:
<form>
###formular zeugs###
<input type="hidden" name="company" class="comp"/>
</form>

  <div id="german_set">
    <select name="name1" size="1" onchange="Del_Data()">
      <option id="Audi" name="name1" value="Audi_de">Audi DE</option>
      <option id="BMW" name="name1" value="BMW_de">BMW DE</option>
     </select>
</div>
<div id="english_set" >
    <select name="name1" size="1" onchange="Del_Data()">
      <option id="Audi" name="name1" value="Audi_en">Audi EN</option>
      <option id="BMW" name="name1" value="BMW_en">BMW EN</option>
    </select>
</div>

<script>
jQuery(document).ready(function(){
    $('#english_set select, #german_set select').change(function(){
        var val = $(this).val();
        $('.comp').val(val);
    });
});
</script>
 
Zuletzt bearbeitet:
Achso...ja jetzt versteh ichs :D
Machs doch wie folgt:
Nehm die beiden Selects aus dem <form> raus und setze in das form ein hidden input welches du je nach auswahl mittels jQuery füllst.
HTML:
<form>
###formular zeugs###
<input type="hidden" name="company" class="comp"/>
</form>

  <div id="german_set">
    <select name="name1" size="1" onchange="Del_Data()">
      <option id="Audi" name="name1" value="Audi_de">Audi DE</option>
      <option id="BMW" name="name1" value="BMW_de">BMW DE</option>
     </select>
</div>
<div id="english_set" >
    <select name="name1" size="1" onchange="Del_Data()">
      <option id="Audi" name="name1" value="Audi_en">Audi EN</option>
      <option id="BMW" name="name1" value="BMW_en">BMW EN</option>
    </select>
</div>

<script>
jQuery(document).ready(function(){
    $('#english_set select, #german_set select').change(function(){
        var val = $(this).val();
        $('.comp').val(val);
    });
});
</script>


komme ja garnimmer mit o_O:rolleyes:
 
Verstehe dein Beispiel nicht ganz, bin noch am Anfang meiner jQuery Karriere :D

Also ein VALUE Wert muss unbedingt über POST übergeben werden, sonst klappt es ja nicht, und es sollte doch innerhalb der FORM sein, wie meinst du das genau, wenn du es sagst: "Es raus nehmen"?
 
Das wird dir zu viel :D hab dir bloß kleine Ausschnitte gezeigt :) kurz zurück zum Anfang:
gibt es ne möglichkeit über PHP oder Javascript den wert auszulesen, welches "Selected" ist ...

also hier beispiel

PHP:
if ("option[Audi]selected") { show this 1 area/zeige diesen 1 Bereich an }
if ("option[BMW]selected") { zeige diesen 2 Bereich an }

Geht das?
 
Das wird dir zu viel :D hab dir bloß kleine Ausschnitte gezeigt :) kurz zurück zum Anfang:
gibt es ne möglichkeit über PHP oder Javascript den wert auszulesen, welches "Selected" ist ...

also hier beispiel

PHP:
if ("option[Audi]selected") { show this 1 area/zeige diesen 1 Bereich an }
if ("option[BMW]selected") { zeige diesen 2 Bereich an }

Geht das?
Javascript:
jQuery(document).ready(function($){
   $('#german_set select, #english_set select').change(function(){
     var val = $(this).val(), comp;
     if(val == 'Audi_de' || val == 'Audi_en'){
       comp = 'audi';
     }else{
       comp = 'bmw';
     }
     //Zum einblenden
     $('.' + comp).show();
     
     //oder zum nachladen
     $.get(comp + '.php', function(data){
       console.log(data);
     });
   });
});
Versuchs damit.
 

Neue Beiträge

Zurück