[SOLVED][HTTPServer] How to get the Combobox value? lazarus / 38-Networking and Web Programming ---------------------------------------------------------------------- Focus77 · 2019-06-07 17:53 Hi everyone I try to insert rows with "GET" Method. All the fieldsvalues are added normally except the combobox one: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i  Add(' '); The whole code: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure TFPWebModule1.insertRequest(Sender: TObject; ARequest: TRequest;  AResponse: TResponse; var Handled: Boolean);  var    Conn: TSQLConnector;    CLASSE,OPTION: TSQLQuery;    LId,LNom,LOption:String;  begin    Conn := TSQLConnector.Create(nil);    with Conn do begin      ConnectorType := 'Firebird';      DatabaseName := 'E:/web/database/NOTES.fdb';      Username:='sysdba';      Password:='masterkey';      Transaction := TSQLTransaction.Create(Conn);    end;     CLASSE:= TSQLQuery.Create(nil);    OPTION:= TSQLQuery.Create(nil);    CLASSE.DataBase := Conn;    OPTION.DataBase := Conn;    with AResponse.Contents do begin      Clear;      Add('');    Add('');      Add('  ');      Add('    Example');      Add('');      Add('  ');      Add('  ');       Add('
');      OPTION.SQL.Text := 'select * from OPTIONS';      OPTION.Open;       CLASSE.SQL.Text := 'select * from CLASSE';      CLASSE.Open;       LId:=ARequest.QueryFields.Values['Id'];      LNom:=ARequest.QueryFields.Values['Nom'];      LOption:=ARequest.QueryFields.Values['Option'];        with AResponse.Contents do      Add('
');      Add('');      Add('');       Add(' ');       Add('');      Add('      ');      Add('
');       if (LId<>EmptyStr)  then      begin        CLASSE.Insert;       CLASSE.FieldByName('COD_CLS_CL').AsString:=LId;     CLASSE.FieldByName('NOM_CLS').AsString:=LNom;       CLASSE.FieldByName('OPT_CL').AsString:=LOption;       CLASSE.ApplyUpdates(-1);       conn.Transaction.CommitRetaining;     end;       Add('    ');      Add('      ');      Add('        ');      Add('        ');      Add('        ');      Add('      ');        while not CLASSE.EOF do begin        Add('        ');        Add('        ');        Add('        ');      Add('        ');        Add('    ');        CLASSE.Next;      end;      Add('    
IdNomOption
'+CLASSE.FieldByName('COD_CLS_CL').AsString+''+CLASSE.FieldByName('NOM_CLS').AsString+''+CLASSE.FieldByName('OPT_CL').AsString+'
');    Add('  ');      Add('');     end;    Handled:=True;    CLASSE.Close;    CLASSE.Free;    Conn.Free;  end;        Any idea? ---------------------------------------------------------------------- Focus77 · 2019-06-09 16:42 Hi everyone Although I have improved the code, the problem still remains. I think that the answer  is with "CBOnChange" event, but I'm not sure  I can use it!  New code: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i procedure TFPWebModule1.insertRequest(Sender: TObject; ARequest: TRequest;  AResponse: TResponse; var Handled: Boolean);  var    Conn: TSQLConnector;    CLASSE,OPTION: TSQLQuery;    LId,LNom,LOption:String;  begin    Conn := TSQLConnector.Create(nil);    with Conn do begin      ConnectorType := 'Firebird';      DatabaseName := 'E:/web/database/NOTES.fdb';      Username:='sysdba';      Password:='masterkey';      Transaction := TSQLTransaction.Create(Conn);    end;     CLASSE:= TSQLQuery.Create(nil);    OPTION:= TSQLQuery.Create(nil);    CLASSE.DataBase := Conn;    OPTION.DataBase := Conn;    with AResponse.Contents do begin      Clear;      Add('');    Add('');      Add('  ');      Add('');      Add('    Insert');      Add('  ');      Add('  ');      Add(' How to insert a new record?');      Add('
'); Add('
');Add('
');Add('
');      OPTION.SQL.Text := 'select * from OPTIONS';      OPTION.Open;       CLASSE.SQL.Text := 'select * from CLASSE';      CLASSE.Open;       LId:=ARequest.QueryFields.Values['Id'];      LNom:=ARequest.QueryFields.Values['Nom'];      LOption:=ARequest.QueryFields.Values['Option'];        with AResponse.Contents do       Add('
');       Add(' ');       Add('        Id');     Add(' ');Add(' ');Add(' ');Add(' ');       Add('      Nom');       Add(' ');Add(' ');Add(' ');Add(' ');       Add('      Option');       Add('      ');       Add('
');       Add('      ');       Add('');       Add('');        Add(' ');       Add('');      Add('      ');      Add('
');       if (LId<>EmptyStr)  then      begin        CLASSE.Insert;       CLASSE.FieldByName('COD_CLS_CL').AsString:=LId;     CLASSE.FieldByName('NOM_CLS').AsString:=LNom;       CLASSE.FieldByName('OPT_CL').AsString:=LOption;       CLASSE.ApplyUpdates(-1);       conn.Transaction.CommitRetaining;     end;      Add('
');      Add('    ');      Add('      ');      Add('        ');      Add('        ');      Add('        ');      Add('      ');       while not CLASSE.EOF do begin        Add('        ');        Add('      ');        Add('        ');      Add('        ');        Add('      ');        CLASSE.Next;      end;    Add('    
Id       Nom     Option           
'+CLASSE.FieldByName('COD_CLS_CL').AsString+''+CLASSE.FieldByName('NOM_CLS').AsString+''+CLASSE.FieldByName('OPT_CL').AsString+ '
');      Add('  ');      Add('');     end;    Handled:=True;    CLASSE.Close;    OPTION.Close;    Conn.Free;  end; ---------------------------------------------------------------------- Soner · 2019-06-09 17:17 You must answer the request. I don't worked with TWebModule but  I think it is the Event TWebModule.OnRequest. It must be like this: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i Procedure TWebModule1.OnRequest(Sender : TObject; ARequest : TRequest; AResponse : TResponse; Var Handled : Boolean);begin   Writeln(ARequest.ContentFields.Values['Option']); //Option is your combobox, you called it self.end;  I am using TFPHTTPServer directly without modules. It is easier to maintenance the application. ---------------------------------------------------------------------- sash · 2019-06-09 18:40 Select's option value attribute should be filled Code: HTML5  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i preferably with unique key, this is what you get back in form submit request. https://www.w3schools.com/html/tryit.asp?filename=tryhtml_elem_select ---------------------------------------------------------------------- Focus77 · 2019-06-09 22:18 Hi everyone! The tip that the combobox is known by its name: Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i  Add('