Обновление URL в Drupal и AJAX

#php #javascript #jquery #ajax #drupal-6

#php #javascript #jquery #ajax #drupal-6

Вопрос:

У меня есть список выбора в моей форме следующим образом

             <form name="source_form">
                <select id="sel_source_zero" name="sel_source_zero">
                <?php
                $sources = _ajax_get_news_sources();
                foreach ($sources as $key => $value) {
                    print ("<option value="$key">$value</option>n");
                }
                ?>
                </select>
                <input type="submit" value="Submit" />
            </form>
  

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

            <?php
                   $source_var = $_GET['sel_source_zero'];
                   $action_zero = "/news/date/"._ajax_condition_ids_final_unique_plus_seperated($source_var)."/$source_var";
            ?>

            <script type="text/javascript">
            $("#sel_source_zero").change(function (){
            $.ajax()
            });
            </script>

            <form name="source_form" method="get">
                <select id="sel_source_zero" name="sel_source_zero">
                <?php
                $sources = _ajax_get_news_sources();
                foreach ($sources as $key => $value) {
                    print ("<option value="$key">$value</option>n");
                }
                ?>
                </select>
                <input type="submit" value="Submit" />
            </form>
  

Я подошел к этой проблеме, сначала попытавшись сохранить выбранное значение ($(«sel_source_zero»).value()) в переменную PHP с использованием AJAX. Вот где я застрял. Я пытаюсь использовать функцию $.ajax () из jQuery, добавленную в Drupal, но я не уверен, как к этому подойти. Если я смогу каким-то образом сохранить переменную JavaScript в переменной PHP, тогда я смогу использовать свою новую преобразованную в исходную переменную PHP и передать ее в свою функцию, чтобы получить список идентификаторов, а затем обновить свой URL. Но я даже не уверен, что это правильный подход. Если кто-нибудь может указать мне правильное направление, как я могу обновить свой URL с выбранным значением и возвращенными значениями PHP, возвращаемыми из функции, которая использует выбранное значение в качестве параметра, я был бы очень признателен.

Ответ №1:

Невозможно установить связь с php, который был выполнен и мертв. Я не уверен на 100%, что вы хотите сделать. Как я предполагаю, вы хотите перенаправить на новый URL, когда пользователь выбирает «#sel_cource_zero».

Если это так (или аналогично), ответ следующий:

form.php:

 <script type="text/javascript">
        $("#sel_source_zero").change(function (){
                var sel = $(this).val();

                $.ajax({type:"GET", data: {'sel_source_zero': sel},
                        url: "ajax.php", dataType: "json", success:
                        function(result){
                                location.href = resu<
                        }
                });
        });
</script>

<form name="source_form" method="get">
        <select id="sel_source_zero" name="sel_source_zero">
        <?php   
                $sources = _ajax_get_news_sources();
                foreach ($sources as $key => $value) {                                                                      
                        print ("<option value="$key">$value</option>n");
                }       
        ?>      
        </select>
</form> 
  

ajax.php:

 <?php

$source_var = $_GET['sel_source_zero'];
$action_zero = "/news/date/"._ajax_condition_ids_final_unique_plus_seperated($source_var)."/$source_var";

echo json_encode($action_zero);
?>