2017-03-24 1 views
0

Ich habe eine einfache Window Forms-Anwendung, die eine Webseite mit festgelegten Parametern öffnet.So füllen Sie eine Textbox mit Abfragezeichenfolgenwert (en) von URL

Der Link sendet den Benutzer an eine Seite mit 2 Textfeldfeldern und einem Absenden-Button.

Ich versuche, diesen Prozess zu automatisieren, so dass es die Parameterwerte ergreift und es in das Textfeld eingibt, klickt dann auf Senden.

Dies ist mein aktueller Code für mein Fenster Form:

using System; 
using System.Windows.Forms; 
using System.Diagnostics; 

namespace WindowsFormsApplication1 { 

public partial class Form1 : Form { 

    public Form1() { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) { 
     libLink.Links.Remove(libLink.Links[0]); 
     libLink.Links.Add(0, libLink.Text.Length, 
      "http://www.example.com/?UserName=value1&FirstName=value2"); 
    } 

    private void libLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { 
     ProcessStartInfo sInfo = new ProcessStartInfo(e.Link.LinkData.ToString()); 
     Process.Start(sInfo); 
    } 
} 
} 

Wie kann ich ein Skript erstellen, dass diese Parameter in der URL nimmt zwei Felder Textfeld zu füllen und dann das Formular einreichen?

Das ist meine HTML-Seite:

<form action="/send" method="post" novalidate="novalidate"> 
     <input class="form-control" data-val="true" data-val-UserName="Wrong username" data-val-required="Enter a valid Username" id="Username" name="Username" placeholder="Username" type="text" value=""> 
     <input class="form-control" id="FirstName" name="FirstName" placeholder="First Name" type="text" value=""> 
     <button type="submit">Sign In</button> 
    </form> 

Ziemlich neu zu Codierung so habe ich versucht, meinen Code so einfach wie möglich zu halten.

Ich sah mögliche Methoden wie QueryStrings, JavaScript und Jquery, aber ich bin mir nicht sicher, wie dieses Problem anzugehen.

+1

Was hat PHP damit zu tun? Entferntes Tag –

+0

Ist das Anwendungsfenster Formular oder Webanwendung? – LP13

+0

@JonStirling Leider Dank für das Entfernen –

Antwort

-1

Es gibt ein paar Möglichkeiten, es wirklich zu tun, aber ich werde Ihnen einen grundlegenden Spaziergang durch, wie ich es in Javascript mit ein bisschen JQuery tun würde.

wir haben Variable mit der URL wir beginnen:

var url = "http://www.example.com/?UserName=value1&FirstName=value2" 
var params_string = url.split("?")[1] //UserName=value1&FirstName=value2 

so wir zuerst die Zeichenfolge in eine Liste aufgeteilt wie oben, die eine Liste der Elemente gibt, die durch die voneinander getrennt sind „?“ Zeichen, aber wir brauchen nur das zweite Element (bei Index 1), also fügen wir das [1] zum Ende hinzu, um nur dieses Bit zu speichern.

Wir haben das dann wieder aufgeteilt, um die einzelnen Parameter zu erhalten.

var params_string_list = params_string.split("&") 
["UserName=value1","FirstName=value2"] 

, die wie oben eine Liste zurückgibt, müssen erneut, dass brechen ich es in ein Objekt machen würde etwa so:

var params = {} 
for(var i =0;i < params_string_list.length;i++){ 
    var temp = params_string_list[i].split("=") // looks like ["UserName","value1"] 
    params[temp[0]]= temp[1] 
} //params now looks like {"UserName":"value1","FirstName":"value2"} 

, da dies macht es leicht zu erreichen und zu nutzen. können wir dann die folgenden Schritte aus, die Werte in Form einzustellen:

if(params.UserName){ 
    $('#Username').val(param.UserName); 
} 
if(params.FirstName){ 
    $('#FirstName').val(param.FirstName); 
} 

wenn statments gibt es zu prüfen, ob der Wert im Objekt vorhanden ist, so dass wir den Wert auf „undefiniert“ durch Zufall nicht gesendet wurden.

Hoffe, das hilft.

+0

Vielen Dank für Ihre Eingabe, ich werde dies testen. Von der Art, wie du es erklärt hast, macht es wirklich klar. Wie würden Sie gehen, um das Formular zu senden, nachdem das Feld eingegeben wurde –

+0

Ich bin etwas verwirrt. OP sagt seine Windows-Form-Anwendung, aber die akzeptierte Antwort verwendet jQuery – LP13

+0

@ LP13 Ich bin neu zu verwenden Stacküberlauf Ich wollte seinen Kommentar, Sorry für die Verwirrung lol. –

Verwandte Themen