Зависимость между выпадающими списками в php / jquery - PullRequest
0 голосов
/ 20 августа 2010

Языки: PHP, JQuery, MySQL

Вопрос "простой", у меня тройная зависимость с php и jquerys, код отлично работает, для вставки новой информации, но теперь я хотел бы сделать обновление, поэтому мне нужно сначала загрузить текущую информацию и Я не понимаю, как, я добавляю некоторые части кода, если понадобятся дополнительные части, спросите меня, прежде чем голосовать за меня, пожалуйста.

Код выглядит примерно так:

      <tr>
        <td class="main"><?php echo ENTRY_COUNTRY; ?></td>
        <td class="main">
                    <select id="country" name="country">
                        <option value="0">Select One...</option>
                    </select>
            </td>
      </tr>
      <tr>
        <td class="main"><?php echo ENTRY_STATE; ?></td>
        <td class="main">
                <select id="state" name="state">
                    <option value="0">Select One...</option>
                </select>
        </td>
      </tr>
          <tr>
        <td class="main"><?php echo ENTRY_CITY; ?></td>
        <td class="main">
                <select id="city" name="city">
                    <option value="0">Select One...</option>
                </select>
        </td>
      </tr>

Три загружаются из базы данных в MySQL, например:

<script type="text/javascript">
$(document).ready(function(){
    cargar_paises();
    $("#country").change(function(){dependencia_estado();});
    $("#state").change(function(){dependencia_ciudad();});
    $("#city").change(function(){dependencia_zip();});
    $("#state").attr("disabled",true);
    $("#city").attr("disabled",true);
});

function cargar_paises()
{
    $.get("scripts/cargar-paises.php", function(resultado){
        if(resultado == false)
        {
            alert("Error");
        }
        else
        {
            $('#country').append(resultado);            
        }
    }); 
}
function dependencia_estado()
{
    var code = $("#country").val();
    $.get("scripts/dependencia-estado.php", { code: code },
        function(resultado)
        {
            if(resultado == false)
            {
                alert("No se encontraron provincias para ese pais");
                $("#state").attr("disabled",true);
                document.getElementById("state").options.length=1;
            }
            else
            {
                $("#state").attr("disabled",false);
                document.getElementById("state").options.length=1;
                $('#state').append(resultado);          
            }
        }

    );
}
function dependencia_ciudad()
{
    var code = $("#state").val();
    $.get("scripts/dependencia-ciudades.php?", { code: code }, function(resultado){
        if(resultado == false)
        {
            alert("Error");
        }
        else
        {
            $("#city").attr("disabled",false);
            document.getElementById("city").options.length=1;
            $('#city').append(resultado);           
        }
    });

..... Спасибо за все;) извините за английский.

1 Ответ

0 голосов
/ 20 августа 2010

Полагаю, вы хотите что-то вроде этого:

На главной странице:

<script>
document.ready = function() {
    fillBasicInformation();
}
</script>

Теперь вам нужно определить функцию fillBasicInformation следующим образом:

//this should only be called in edit mode
fillBasicInformation = function() {
    //First fill country select
    //select the specific country
    //Fill state select
    //select specific state
    //fill city select
    //select specific city

    //now attach events to onChange event
    //1
}

Вы должны сейчас решить, как вы будете получать и заполнять свои поля, добавлять опции в соответствующие, вероятно через ajax, или, возможно, непосредственно на странице загрузки и выбирать правильное (используя val () , например).

...