Problem mit ahah und file Field
Eingetragen von Naerk (13)
am 30.10.2009 - 20:22 Uhr in
am 30.10.2009 - 20:22 Uhr in
Hallo,
hoffe mein Thema ist hier richtig. Ich entwickel derzeitig ein eigenes Modul (was Bestandteil eines größeren Moduls ist), wo man eine Datei hochladen kann. Mittels ahah möchte ich gerne ein Ladezeichen einbinden.
Ich halte mich hier genau an die Beschreibung von http://drupalsn.com/learn-drupal/drupal-tutorials/getting-going-ahah-and...
Sobald ich ein file Field einbaue, ein File wähle und auf Submit klicke erhalte ich die Meldung:
An HTTP error 0 occurred.
/btest/js
Kommentiere ich das File Field aus klappt alles.
...
$form['upload'] = array(
'#type' => 'file',
'#title' => t('Datei auswaehlen'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
'#weight' => 1,
'#submit' => array('btest_form_submit'),//none JS version
'#ahah' => array(
'event' => 'click',
'path' => 'btest/js',
'wrapper' => 'myform-wrapper',
'method' => 'replace',
'effect' => 'fade',
'progress' => array(
'type' => 'bar',
'message' => t('Loading...')
)
)
);
return $form;
...
Jemand eine Ahnung woran das liegen könnte?
Viele Grüße
Naerk
- Anmelden oder Registrieren um Kommentare zu schreiben
open_basedir
am 31.10.2009 - 09:13 Uhr
Hi Naerk
Ich bin zwar weiss Gott kein Entwickler aber ich hatte vor kurzem ein ganz ähnliches Problem mit dem FileField. Das Prolem tauchte auf, nach der Migration auf einen anderen Server.
Wir konnten es so lösen, dass in der PHP Konfiguratino die Directive "open_basedir" auf "no value" gesetzt haben.
Vielleicht hilft es ja und sonst viel Glück.
Gruss
RedPanda
Drupal und SEO mal einfach: http://www.redpanda.ch
Hallo RedPanda, danke für
am 31.10.2009 - 10:10 Uhr
Hallo RedPanda,
danke für den Tipp,
leider hat es nichts geholfen. Ich poste hier mal den kompletten Code zum nachbauen:
function btest_menu() {
$items['btest/js'] = array(
'page callback' => 'btest_js',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
$items['btest/test'] = array(
'title' => 'btest',
'description' => 'btest',
'page callback' => 'drupal_get_form',
'page arguments' => array('btest_form'),
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
/**
* callback function for btest/js
* The return HTML will be outputted by AHAH
*/
function btest_js() {
return drupal_json(array('status' => TRUE, 'data' => "Hello Drupal World"));
}
function btest_form_submit($form, &$form_state) {
echo "versendet";
}
function btest_form() {
$form['#attributes']['enctype'] = 'multipart/form-data';
$form['upload'] = array(
'#type' => 'file',
'#title' => t('Datei auswaehlen'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
'#weight' => 1,
'#submit' => array('btest_form_submit'),//none JS version
'#ahah' => array(
'event' => 'click',
'path' => 'btest/js',
'wrapper' => 'myform-wrapper',
'method' => 'replace',
'effect' => 'fade',
'progress' => array(
'type' => 'bar',
'message' => t('Loading...')
)
)
);
return $form;
}
function btest_perm() {
return array('access content');
}
Wähle ich in dem File Field nichts aus, so funktioniert es wunderbar. Sobald ich da aber ein File wähle, kommt der beschriebene Fehler im Firefox. Im IE hört die bar nicht mehr auf zu laden...
Niemand eine Idee?
Viele Grüße
Naerk
hi Naerk, da sind ein Paar
am 08.11.2009 - 07:44 Uhr
hi Naerk,
da sind ein Paar dinge zu ändern...
<?php
function btest_menu() {
$items['btest/js'] = array(
'page callback' => 'btest_js',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
$items['btest/test'] = array(
'title' => 'btest',
'description' => 'btest',
'page callback' => 'drupal_get_form',
'page arguments' => array('btest_form'),
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
/**
* callback function for btest/js
* The return HTML will be outputted by AHAH
*/
function btest_js() {
// was ist das hier mit dem returnen??? auserdem drupal json ist nicht gerade das beste für diesen Einsatz.
//return drupal_json(array('status' => TRUE, 'data' => "Hello Drupal World"));
$form[] = array(
'#type' => 'markup',
'#value' => 'Hello Drupal World'
);
drupal_set_message('angekommen', 'status');
$output = theme('status_messages') . drupal_render($form);
print drupal_to_js(array('status' => TRUE, 'data' => $output));
exit;
}
function btest_form_submit($form, &$form_state) {
// wie sollte das hier ausgeführt werden? das ist komplet ein anderer callback.
// Du muss Drupal es mitteilen. siehe unten in der form, wie.
drupal_set_message("geclickt . Mitteilung aus form_submit");
drupal_goto(url('btest/test'));
}
function btest_form() {
$form['#attributes']['enctype'] = 'multipart/form-data';
$form['upload'] = array(
'#type' => 'file',
'#title' => t('Datei auswaehlen'),
// Wo sollte die nachricht erscheinen? hier?
'#suffix' => '<div id ="myform-wrapper"></div>',
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
'#weight' => 1,
'#submit' => array('btest_form_submit'),//none JS version
'#ahah' => array(
'event' => 'click',
'path' => 'btest/js',
'wrapper' => 'myform-wrapper',
'method' => 'replace',
'effect' => 'fade',
'progress' => array(
'type' => 'bar',
'message' => t('Loading...')
)
)
);
// hier die Mitteilung, Aufförderung, wie auch immer und darunter
//der button der die Mitteilung von form_submit hervorruft.
$form['#submit'][] = 'btest_form_submit';
$form['submit2'] = array(
'#type' => 'submit',
'#value' => t('Submit 2'),
'#name' => 'submit2'
);
return $form;
}
function btest_perm() {
return array('access content');
}
?>
ich hoffe das klappt, es sollte.
viele Grüße
Juan Carlos