简体   繁体   中英

How do you generate web pages based on a form?

For example, the website https://talky.io/ has a form on its homepage. When you enter text into the form and hit the button, you're taken to a page that's https://talky.io/[your text]. How do you do this? What's the best way to do it?

Thank you!

You can use onSubmit and change the action attribute of the form via javascript, then return true. The code could look like this:

HTML from linked page:

<form id="createRoom">
   <input id="sessionInput" placeholder="Name the conversation" autofocus="autofocus">
   <button type="submit">Let’s go!</button>
</form>

Js code:

document.getElementById("crateRoom").onsubmit = function(){
   var url = encodeURIComponent(document.getElementById("sessionInput").value);
   document.getElementById("crateRoom").action = "/" + url;
   return true;
}

It is server-side script job. You can look at some MVC framework and the url parameters

You can use PHP symfony or codeignitor, if you use .net then create a new MVC project.

But if you only need to change urls like

www.mysite.com/mypage.php?something=value

to

www.mysite.com/value

You can do a mod rewrite in apache or if you're using .net then use RegisterRoutes in your global.asax.cs

You can use GET method of form;for example:

<form action="index.php" method="get">
Page: <input type="text" name="page">
<input type="submit" value="Submit">
</form>

that after submit will go to index.php?page=yourEnteredPage .

Using a form you can submit data to a location/url that was given in the action attribute of the for, for example

<form method="POST" action="http://example.com">
    <input name="first_name" type="text" value="" />
    <!-- Form elements -->
    <input type="submit" name="mySubmitButton" value="Submit">
</form>

This form will submit the form data to the given action url when submit will be pressed and on the derver data could be retrieve using

$first_name = $_POST['first_name';];

and so on. The method POST is used to submit the form in the post array so you can retrieve data using $_POST['formfieldname'] and if you use method="GET" then you can get submitted data from $_GET variable, like, $fname=$_GET['first_name'] . GET has limitation of amount when submitting data (safe to use up to 2000 characters IE's limit ) and is visible to address bar of the browser and not being used for login (password) and POST can send more data than GET and also not visible to address bar. You may read this.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM