2012-04-05 2 views
0

Hallo ich versuche, Javascript zu verwenden, um zwei Zeichenfolgen zu einer anderen PHP-Seite zu posten (die Zeichenfolgen sind dynamisch und werden von einer JS-Routine zur Laufzeit erstellt)Javascript Post form.submit();

Ich möchte den folgenden Code verwenden, um ein neues Fenster zu öffnen und innerhalb des Codes für die Seite abgerufen werden die gebuchten Daten

im den folgenden Code verwenden

var title_string = "title1|title2"; 
var barcode_string = "barcode1|barcode2"; 
var path="create_labels.php"; 
var method = "post"; 
var params = "titles=" + title_string + "&barcodes=" + barcode_string; 
    // The rest of this code assumes you are not using a library. 
// It can be made less wordy if you use one. 
var form = document.createElement("form"); 
form.setAttribute("method", method); 
form.setAttribute("action", path); 
form.setAttribute("target", "_blank"); 

for(var key in params) { 
    if(params.hasOwnProperty(key)) { 
     var hiddenField = document.createElement("input"); 
     hiddenField.setAttribute("type", "hidden"); 
     hiddenField.setAttribute("name", key); 
     hiddenField.setAttribute("value", params[key]); 

     form.appendChild(hiddenField); 
    } 
} 

document.body.appendChild(form); 
form.submit(); 

der Einfachheit halber zu schreiben habe ich nur zwei Strings erstellt (Titel und Barcode) für den Augenblick, den ich gehe Pass über einen Post auf form.submit

Das Bit, auf dem ich nicht sicher bin, ist die Erstellung der Parameter, mache ich das richtig? Der Code öffnet ein neues Fenster, aber aus welchen Gründen auch immer kann ich die geposteten Daten nicht abrufen, ich denke, es falsch zu posten.

Antwort

0

Haben Sie die Ausgabe dieses Formulars gesehen? Sie erstellen versteckte Felder für jedes Zeichen der Parameterzeichenfolge. Bist du sicher, dass du das machen willst?

0

params ist eine Zeichenfolge, kein Objekt, daher hat es keine Schlüssel. Sie am Ende der Verarbeitung jedes Zeichen des Strings und mit diesem Ende:

<input type="hidden" name="0" value="t"> 
<input type="hidden" name="1" value="i"> 
<input type="hidden" name="2" value="t"> 
<input type="hidden" name="3" value="l"> 
<input type="hidden" name="4" value="e"> 
<input type="hidden" name="5" value="s"> 
<input type="hidden" name="6" value="="> 
<input type="hidden" name="7" value="t"> 
<input type="hidden" name="8" value="i"> 
<input type="hidden" name="9" value="t"> 

... etc ...

Sie dieses bit of code brauchen kann es zu konvertieren.