#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);
?>