Есть js:
//alert(jQuery('.FIO').text());
jQuery.ajax({
type: 'POST', // Use the POST method.
url: 'fill_rtf.php',
data: 'FIO=1215'+jQuery('.FIO').text() // Pass a key/value pair.
});
});
алерт срабатывает. Но в fill_rtf.php ничего не передается.
консоль в firebug пишет :
Заголовки ответа
Date Wed, 10 Aug 2011 09:18:14 GMT
Server Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.3.3
X-Powered-By PHP/5.3.3
Content-Disposition inline; filename=docs.rtf
Параметры application/x-www-form-urlencoded
FIO 1215Петров Василий Иванович
Исходный код
FIO=1215Петров Василий Иванович
Ответ :
....\ltrch\fcs0 \fs24\insrsid2194361\charrsid2194361 1215Петров Василий Иванович}{\rtlch\fcs1 \af0 \ltrch...
Помогите разобраться?
Комментарии
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
а что с этим делать?) с тем что вернулось...
ну то есть, обратно вернуться ничего не должно, надо лишь передать параметры в другую php. вот в конечную они не приходят.
а скажите пжл такую вещь - кроме написания оной js и подключения ее через drupal_add_js, надо ли еще что ниб делать? в смысле menu_hook или еще что ниб...
понимаю что вопрос глупый, но в друпале вашпе ни бум бум....
Drupal.behaviors.myModule = function (context) {
...
};
вот вам и написали, то что вам надо.
Правда помню сталкивался с проблемой post и использовал метод get. Попробуйте get.
А если в урле вы обращаетесть к друпалу в аякс запросе, то конечно соответвующей Hook_menu надо реализовать и возвращать в реаливанной функции типа
<?php
print drupal_to_js($datas);
exit();?>
это в js?
jQuery(document).ready(function() {
jQuery('.download_docs').click(function() {
//alert(jQuery('.FIO').text());
jQuery.ajax({
type: "POST",
url: "fill_rtf.php",
data: "FIO=John",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
});
});
};
теперь даже Ваш alert( "Data Saved: " + msg ); отвалился. В конечную fill_rtf.php ничего не передается.
не работает (
нет в аяксе обращаюсь к своей php, которая получает данные и кидает все в rtf файл. Никакого друпала.
<?php
/**
* file
* Use this module to learn about jQuery.
*/
/**
* Implements hook_init().
*/
function blockaway_init() {
drupal_add_js(drupal_get_path('module', 'blockaway') .'/blockaway.js');
}
?>
в js :
Drupal.behaviors.blockaway
правильно ведь?
p.s. видимо не blockaway...
в чем проблема была не помните?
Упс.
var values = [];
$('input:checked', $('fieldset#edit-menu')).each(function () {
// Get the names of all checked menus.
values.push(Drupal.checkPlain($.trim($(this).val())));
});
var url = Drupal.settings.basePath + 'admin/structure/menu/parents';
$.ajax({
url: location.protocol + '//' + location.host + url,
type: 'POST',
data: {'menus[]' : values},
dataType: 'json',
success: function (options) {
// Save key of last selected element.
var selected = $('fieldset#edit-menu #edit-menu-parent :selected').val();
// Remove all exisiting options from dropdown.
$('fieldset#edit-menu #edit-menu-parent').children().remove();
// Add new options to dropdown.
jQuery.each(options, function(index, value) {
$('fieldset#edit-menu #edit-menu-parent').append(
$('<option ' + (index == selected ? ' selected="selected"' : '') + '></option>').val(index).text(value)
);
});
}
});
}
1) Url обрабатывается через hook_menu(), т.е. функции работают на определенных url а не php файлах.
2) Обратите внимание на формат - data: {'var_name' : values} , правда там и dataType: 'json', но возможно Вам то что надо
3) Поставьте себе examples там есть разных ajax примеров рабочих, если не хотите с core примерами разбираться.
спасибо за наводку... буду разбираться.
Это у Вас в hook_menu() ?
Нет это в файле
\modules\menu\menu.admin.js
а hook_menu
в файле
Y:\home\getqr.ru.sas\www\modules\menu\menu.module
<?php
/**
* Implements hook_menu().
*/
function menu_menu() {
...
$items['admin/structure/menu/parents'] = array(
'title' => 'Parent menu items',
'page callback' => 'menu_parent_options_js',
'type' => MENU_CALLBACK,
'access arguments' => array(TRUE),
);
...
?>
Упорно не хочет работать.
Итак, есть вьюха, на которой поле с custom text и ссылка на http://test1.ru/rtf.
Сам модуль:
<?php
/**
* file
* Use this module to learn about jQuery.
*/
/**
* Implements hook_init().
*/
function blockaway_init() {
drupal_add_js(drupal_get_path('module', 'blockaway') .'/blockaway.js');
} /**
* Implementation of hook_menu().
*/
function blockaway_menu() {
$items['rtf'] = array(
'title' => 'rtf page',
'page callback' => 'blockaway_rtf',
'access callback' => TRUE,
'type' => MENU_VISIBLE_IN_BREADCRUMB
);
return $items;
}
function blockaway_rtf () {
global $user;
require_once("popRTF.php");
);
header( 'Content-Type: text/html; charset = utf-8');
header("Content-type: application/msword");
header("Content-disposition: inline; filename=docs.rtf");
header("Content-length: " . strlen($new_rtf));
echo $new_rtf;
exit;
}
?>
javascript :
jQuery(document).ready(function() {
jQuery('.dwnld').click(function() {
var url = Drupal.settings.basePath + 'rtf';
jQuery.ajax({
type: 'POST',
url: location.protocol + '//' + location.host + url,
dataType: 'json',
data: 'fio=John'
});
});
});
//}
при нажатии на кнопку отдается файл на скачивание, но параметры в $_POST не передаются.
Если раскоментить Drupal.behaviors.blockaway = function (context) { то js вообще отваливается.
В чем косяк, подскажите плз?
upd : таки никто и не подскажет?
Не думаю, что еще актуально, но, видимо, вот это
jQuery(document).ready(function() {
лишнее...