Html mit python -> Brauche Ratschlag

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

Mittwoch 26. Juli 2006, 22:02

Nachtrag zu der Idee in meinem letzten Beitrag:

Code: Alles auswählen

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
          "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
  <head>
    <title>Test</title>
    <script type="text/javascript" src="test.js"></script>
  </head>
  <body>
    <form id="fruit_form">
      <table>
        <tr>
          <td><input type="checkbox" id="b_apples" /></td>
          <td><a href="apples.png" id="a_apples">Apples</a></td>
        </tr>
        <tr>
          <td><input type="checkbox" id="b_oranges" /></td>
          <td><a href="oranges.png" id="a_oranges">Oranges</a></td>
        </tr>
        <tr>
          <td><input type="checkbox" id="b_peaches" /></td>
          <td><a href="peaches.png" id="a_peaches">Peaches</a></td>
        </tr>
        <tr>
          <td><input type="checkbox" id="b_bananas" /></td>
          <td><a href="bananas.png" id="a_bananas">Bananas</a></td>
        </tr>
        <caption>Fruits</caption>
      </table>
      <p>
        <input type="button" value="Get marked"
               onclick="traverseCheckboxes()" />
      </p>
      <p>
        <textarea id="output" cols="50" rows="10"></textarea>
      </p>
    </form>
  </body>
</html>
Und die `test.js`:

Code: Alles auswählen

function traverseCheckboxes() {
    var formElements = document.forms.fruit_form.elements;
    var result = '';
    for (var i = 0; i < formElements.length; ++i) {
        var element = formElements[i];
        if (element.type == 'checkbox' && element.checked) {
            result += document.getElementById('a_' + element.id.slice(2))
                      + '\n';
        }
    }
    formElements.output.value = result;
}
Ich denke das ist ein guter Ausgangspunkt. Alles weitere über JavaScript und die Objekte die man im Browser damit ansprechen kann gibts hier: http://selfhtml.org/
Mati
User
Beiträge: 68
Registriert: Dienstag 6. Juni 2006, 16:54

Freitag 28. Juli 2006, 08:58

Ja ich meinte BlackJack ;)

Danke.
Wieviel Kontrolle ich habe. Also der User macht gar nichts bis daraufdass er einzelne Zeilen dann zusammenkopiert in EIN HTML file wo dann viele Zeilen entstehen. D.H. Ich habe die Absolute Kontrolle ueber die Erstellung der Zeilen.
Das Problem waere nur dass, dass halt damit sich evtl. 2 ID's ueberschneiden koennten oder? Weil ich rufe das Programm z.B 3 mal auf und es entstehen drei verschiedene HTML files mit jeweils einer Zeile (mit Bild, Link, Checkbox UND einem "run" button der eben die routine darstellt etc...)
Jetzt geht der User her und kopiert zwei der Zeilen (aus zwei files eben) heraus und in das dritte rein (natuerlich an die richtige stelle) und damit entsteht eine Tabelle mit 3 Zeilen. In diesem File kann er ja dann auf den run-Button gehen und eben die Links auslesen. Da alle Files einen run button haben der urspruenglich auch miterzeugt wird ist es egal welche 2 Zeilen er in ein drittes file kopiert.

Gaebe es evtl. eine Moeglichkeit ueber den run-button ein zweites Python skript aufrufen zu lassen welches z.B. durch das html file laeuft und mir eben das gewuenschte Problem (Links auslesen der angecheckten Boxen der Zeilen und der BildLinks in dieser Zeile) herausliest???

Ginge so ein Aufruf?

Danke wiedermal und bis zum naechsten mal :D
BlackJack

Freitag 28. Juli 2006, 09:38

Mati hat geschrieben:Ja ich meinte BlackJack ;)

Danke.
Wieviel Kontrolle ich habe. Also der User macht gar nichts bis daraufdass er einzelne Zeilen dann zusammenkopiert in EIN HTML file wo dann viele Zeilen entstehen. D.H. Ich habe die Absolute Kontrolle ueber die Erstellung der Zeilen.
Das Problem waere nur dass, dass halt damit sich evtl. 2 ID's ueberschneiden koennten oder?
Darum sind in meinem Beispiel in den IDs die Dateinamen enthalten. Da wäre es auch kein Problem wenn die Zeilen vorher in einzelnen Dateien gestanden hätten.

Du musst also beim erzeugen dafür sorgen, das die IDs eindeutig sind. Falls es egal ist, das zwei Dokumente die sich auf die gleiche Datei beziehen, unterschiedliche IDs haben, dann kannst Du zum Beispiel einfach die aktuelle Zeit plus einer Zufallszahl nehmen. Wenn die Dateinamen immer gültige XML-Namen sind, dann kann man das wie in meinem Beispiel lösen. Oder man wandelt den Dateinamen in eine Hexadezimalzahl um, dann ist es egal ob die Dateinamen gültige XML-Namen sind.

Code: Alles auswählen

In [26]: import binascii

In [27]: 'b_' + binascii.b2a_hex('apples.png')
Out[27]: 'b_6170706c65732e706e67'
Gaebe es evtl. eine Moeglichkeit ueber den run-button ein zweites Python skript aufrufen zu lassen welches z.B. durch das html file laeuft und mir eben das gewuenschte Problem (Links auslesen der angecheckten Boxen der Zeilen und der BildLinks in dieser Zeile) herausliest???
Nicht wirklich. Jedenfalls nicht ohne Server.
Antworten