• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ajax, PHP Automatyczne uzupełnianie pola typu select

Object Storage Arubacloud
+1 głos
717 wizyt
pytanie zadane 30 sierpnia 2017 w PHP przez chmod96 Obywatel (1,380 p.)

Cześć, obecnie próbuję napisać skrypt który dzięki Ajax będzie działał tak że po wybraniu wartości w pierwszy polu typu select, drugie pole uzupełni się automatycznie.

Ma to działać na tej zasadzie Przykład

Jednak po wyborze pierwszego selecta drugi pozostaje pusty dlaczego ?

Kod HTML

    <select name="value_1" id="value_1" >
        <option value="">Wybierz 1</option>
        <option value="1">Wartosc 1</option>
        <option value="2">Wartosc 2</option>
        <option value="3">Wartosc 3</option>
    </select>
        
    <select name="value_2" id="value_2" >
        <option value="">Wybierz 2</option>
    </select>

    <select name="value_3" id="value_3" >
        <option value="">Wybierz 3</option>
    </select>

Oczywiście w pierwszy select dane są wyciągane z bazy jednak dla przykładu dałem teraz sztywne dane.

Kod JavaScript

$(document).ready(function(){
    $('#value_1').on('change',function(){
        var value = $(this).val();
        if(value){
            $.ajax({
                type:'POST',
                url:'ajaxData.php',
                data:'value_1='+value,
                success:function(html){
                    $('#value_2').html(html);
                    $('#value_3').html('<option value="">Wybierz najpierw wartosc 1</option>'); 
                }
            });

        }else{
            $('#value_2').html('<option value="">Wybierz najpierw wartosc 1</option>');
            $('#value_3').html('<option value="">Wybierz najpierw wartosc 3</option>'); 
        }
    });
    
    $('#value_2').on('change',function(){
        var value = $(this).val();
        if(value){
            $.ajax({
                type:'POST',
                url:'ajaxData.php',
                data:'value_2='+value,
                success:function(html){
                    $('#value_3').html(html);
                }
            }); 
        }else{
            $('#value_3').html('<option value="">Wybierz najpierw wartosc 2</option>'); 
        }
    });
});

Kod PHP plik ajaxData.php

<?php
    if(isset($_POST["value_1"]) && !empty($_POST["value_1"])){

        echo '<option value="1">Wartosc 1</option>';
        echo '<option value="2">Wartosc 2</option>';
        echo '<option value="3">Wartosc 3</option>';
    }

    if(isset($_POST["value_2"]) && !empty($_POST["value_2"])){
        
        echo '<option value="1">Wartosc 1</option>';
        echo '<option value="2">Wartosc 2</option>';
        echo '<option value="3">Wartosc 3</option>';
    }
?>

Tutaj także dałem dane przykładowe, normalnie będę je pobierał z bazy danych.

Problem jest taki że w pierwszym select dane się wyświetlają ok, jednak po kliknięciu w jakąś wartość drugi select traci swoją zawartość i nie wyświetla przykładowych z pliku ajaxData.php

Wie ktoś z was gdzie leży błąd ?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 525 wizyt
0 głosów
2 odpowiedzi 1,770 wizyt
0 głosów
2 odpowiedzi 880 wizyt

92,540 zapytań

141,383 odpowiedzi

319,482 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...