HTA mit dynamisch generierten HTML-Tabellen mit onclick-Fehler
Recht. Ich muss hier nicht helfen. Ich habe eine HTA, und es läuft völlig in Ordnung. BIS ich das folgende tun, um meinen code. Ich arbeite mit VBScript. Code unter:
<Script language="vbscript">
Sub DisplayDB_Click
Dim conn, str1, str2
str2 = "Hello"
MainTitle.InnerHTML = "<h2>Main Call Queue</h2>"
Set conn = CreateObject("ADODB.Connection")
conn.Open "DSN=LongbowLogin"
Set rsData = conn.Execute("SELECT * FROM MainTable WHERE CallStat='Open' ORDER BY P_ID DESC;")
str1 = "<table border=1 cellpadding=5><tr><th>Call Id</th><th>Full Name</th><th>Postcode</th><th>Site Code</th><th>Problem Title</th><th>Category</th><th>SubCategory</th><th>Call Status</th></tr>"
Do Until rsData.EOF = True
str1 = str1 & "<tr><td onclick=msgbox(str2)>" & rsData("P_Id") & "</td><td>" & rsData("FirstN") & "</td><td>" & rsData("PostCode") & "</td><td>" & rsData("SiteNumber") & "</td><td>" & rsData("PTitle") & "</td><td>" & rsData("PCat") & "</td><td>" & rsData("SCat") & "</td><td>" & rsData("CallStat") & "</td></tr>"
rsData.moveNext
Loop
str1 = str1 & "</table>"
MainDisplay.InnerHTML = str1
conn.Close
Call CheckState
End Sub
Dieser code stellt eine HTML-Tabelle aus einer SQL Select-Anweisung und legt es in einem Span-tag mit dem Namen MainDisplay
unter InnerHTML
. Dieser Teil funktioniert wunderbar. Allerdings - Nachdem ich hinzufügen
< td onclick='msgbox(str2)' >
Teil, wird es nicht funktionieren.
Ich Sie auf die erste Zelle, und ich bekomme eine Meldung: "Line 1, 'str2' is not defined."
.
Eigentlich will ich es sagen
< td onClick='CellID Me') >
, CellID
ein sub später in der gleichen Skript-block. Ich Tue dies msgbox
zu beheben.
str2
klar definiert ist, so bin ich eindeutig fehlt hier etwas...
Jede Hilfe wäre hier toll, ich bin verrückt...
Vielen Dank.
InformationsquelleAutor IMPhill | 2013-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
VBScript keine Variablen-interpolation:
Haben Sie splice " den Inhalt in die Ergebnis - und die Folgen VBScript Regeln über Klammern und Anführungszeichen:
Dies erklärt Ihre unmittelbare problem. Ihre Reale Welt Aufgabe - fügen Sie ein onclick-event-handler, um alle TDs - wird besser gelöst durch erstellen Sie die Tabelle über die DOM - (.createElement, appendChild) als durch den Versuch, Sie zu zähmen string-Verkettungen in .innerHTML.
Also, gibt es irgendwie dieses Problem umgehen? Was ist mit glup mit JavaScript? Danke...
InformationsquelleAutor Ekkehard.Horner
Machen die
MsgBox
Arbeit, die Sie haben, dies zu ändern:in diesem:
Allerdings habe ich schon sagte Sie, dass der code
im Prinzip funktioniert. Ich habe überprüft dies mit einer HTA, die eine Tabelle erstellt aus einer CSV-auf die Schaltfläche-klicken.
VBScript:
HTML:
Wenn dieser code nicht für Sie arbeiten, das Problem ist irgendwo in der HTA.
Als Ekkehard.Horner vorgeschlagen, die Tabelle konnte auch erstellt werden, mithilfe
createElement
undappendChild
, z.B. wie folgt:Gut, ok, ich werde aufgeben. Ich kann nicht damit es funktioniert. Es carrys auf zu sagen "" Erwartet ";". Ich habe keine Ahnung, ob seine Interaktion für die MySql-Anweisungen schlecht oder was. Ich habe die neue Form der Tabelle, die
For Each field
Teil, wie es funktioniert viel schöner - Danke dafür. Ich habe einen workaround im Ort. Es ist nicht so schön, aber es funktioniert. Schade... anywho, ab.<div>
ist ein block-level-element in der Erwägung, dass<span>
ist ein inline-element (das sollte nicht sein (ab)als ein block-level-element). Mein Beispiel-code war mit beiden<div>
und<span>
, obwohl. Für dieexpected ";"
Fehler: ich habe dir bereits gesagt, dass es wahrscheinlich durch eine<script language="javascript">
oder<script>
block mit nicht-JavaScript-code. Für die weitere Fehlersuche Sie müssen Ihren vollständigen code des HTA.InformationsquelleAutor Ansgar Wiechers