Ich muss einen Fortschrittsbalken mit Drupal 7 implementieren. Dies ist der Code, den ich tatsächlich verwende.
$form[$name][$name.'_enc'] = array(
'#type' => 'submit',
'#value' => t($name.' Enable'),
// '#submit' => array('submit_'.$name.'_enc'),
'#ajax' => array(
'callback' => 'submit_'.$name.'_enc',
'wrapper' => 'ajax-response-goes-here',
'method' => 'replace',
'effect' => 'fade',
'progress' => array (
'type' => 'bar',
'message' => 'convert..',
'url' => 'misc/progress.js',
'interval' => '1500'
)
Antworten:
Was Sie als
['#ajax']['progress']['url']
falsch festlegen, ist nicht die URL für eine JavaScript-Datei, sondern der Rückrufpfad, anhand dessen bestimmt wird, wie voll der Fortschrittsbalken ist. Der Menü-Rückruf sollte einen Wert zurückgeben, der angibt, ob der Vorgang abgeschlossen wurde oder bei 10%, 20%, 50% usw. abgeschlossen ist. Wenn ich mir den Code in der Datei progress.js ansehe, stelle ich fest, dass der Wert erwartet wird zwischen 0 und 100 liegen.Als Randnotiz sollte der übergebene Wert an
['#ajax']['progress']['message']
übergeben werdent()
.quelle
Beispiel für einen Fortschrittsbalken:
Erstellen Sie dann ein Menü wie das folgende für die URL 'Import / Fortschritt':
Geben Sie dann JSON-Daten aus, die den aktuellen Status wie diesen in dieser Seitenrückruffunktion anzeigen:
quelle
Ich habe einen Menü-Rückruf namens erstellt
sales/progress
. Hier habe ich eine Funktion wie unten aufgerufenHier ist 25 ein statischer Prozentwert. Sie können den Prozentwert und den Nachrichtentext nach Ihren Wünschen anpassen.
In regelmäßigen Abständen wird die obige Funktion aufgerufen. Der Wert des Fortschrittsbalkens wird aktualisiert. Weitere Details finden Sie unter Link
quelle