It's difficult to provide a precise answer without knowing the exact environment you're working with (target web service, preferred programming language, etc.). But I'll attempt a general answer.
Consuming the Web Service
SOAP webservices often (always?) provide a machine-readable description which can be "consumed" by some tool, generating code in your favorite language to interact with the API.
For example, Salesforce offers a description of their SOAP API, customized for a given account, in the form of a WSDL (Web Service Description Language) file. It is XML, like SOAP requests/responses. For my applications, I have used Visual Studio to create a reference in my project to Salesforce's API using the WSDL file. The rest is done with simple object initialization and methods. For example:
using ServiceName; // Namespace generated by Visual Studio using the WSDL.
var client = new ServiceClient("username", "password");
client.Create(new ServiceThing("information", "about the new thing"));
This example in C#-like syntax would call the SOAP API to create some object with the given information. The details of the network request are completely hidden.
To learn how to consumer your target API's services, search for something like "consume WSDL in [language of your choice]". Even better, see if the target web service has documentation describing how to consume it.
Sending Data from Web Page
There are any number of tools to retrieve information from an HTTP POST request and act upon it. I'm most familiar with ASP.NET. You seem familiar with PHP.
To keep things simple, you'll want to try to consume the target web service using the same language as your web service that receives input from the user. I'll provide an ASP.NET-like example which hopefully you can translate to your preferred tools:
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostback)
{
// a and b are names of input fields in our page.
string a = Request["a"];
string b = Request["b"];
// Let's assume we've initialized the web service client as a property.
Client.Create(new ServiceThing(a, b));
}
}
There you go. No manual XML editing necessary. The SOAP XML is automatically generated based on your ServiceThing
object and send to your target web service.
Again, this is a general answer to a general question. If you update your question with more specifics, I'll try to edit this answer with more targeted details.