如何保存第一个用户的选择,然后生成唯一的 code/link,并最终为后续用户显示第一个用户的选择?

How do I save the first users selections, then generate a unique code/link, and finally display the first users selections for a subsequent user?

我想创建一个带有选择的网页,然后当用户输入他们的选择时,我想要一个代码输出(或者更好的是一个独特的 url),可以将其复制粘贴到论坛,通过电子邮件发送等...允许他们的朋友单击 link 并检索与该 link 关联的输入选择。

一个代码就可以了,其中一个 link + 一个 copy/pasted 的代码进入文本框然后生成共享条目。

例如我有几个下拉框:

A drop down with 50 states, a drop down with gender, a drop down with ages 1-100, a drop down with number of kids.

An end-user comes and selects whatever choices they want and the page produces the link or code allowing future end-users to either click the link (preferable) or paste the code into a text box which then selects all the appropriate selections wishing to be shared. This allows the second user to view exactly what the first user wanted to share with a simple short link/code.

我被卡住了,我知道我不必为每种可能性创建一个独特的网页,但我不确定如何处理。

如何保存第一个用户的选择,然后生成唯一的 code/link,并最终为后续用户显示第一个用户的选择?

您可能需要的是 url 个参数..

这是一个使用正则表达式从 url

中获取参数的函数
function gup( name ){
  name = name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");  
  var regexS = "[\?&]"+name+"=([^&#]*)";  
  var regex = new RegExp( regexS );  
  var results = regex.exec( window.location.href ); 
   if( results == null )    return "";  
  else    return results[1];
}

我不会担心那里发生了什么..但是要使用它你会有一个 url (mysite.com/coolPage) 如果他们带着参数 (mysite. com/coolPage?whosCool=ImCool)

您可以在 javascript 中调用 gup("whosCool"),它会 return "ImCool"


在你的例子中,你会 mySite.com?state=oklahoma&gender=male

在您的 javascript 中,您可以在加载时:

document.getElementById('state').value = gup('state');​​​​​​​​​​
document.getElementById('gender').value = gup('gender');​​​​​​​​​​

构建 url,当他们做出所有选择时,您将使用参数构建 url。

var url = "mycoolSite.com/mypage?";
url += "state=" + document.getElementById('state').value;
url += "gender=" + document.getElementById('gender').value;

document.getElementById('outputURL').innerHTML = "<a href='"+url+"'>Your url</a>";

这就是零件,不过您必须将它们全部拼凑起来

我可以想到两种方法:

  1. 唯一数据库 ID,它存储该用户的所有信息,并在他们生成 link 时生成。

  2. 更长的 url,所有选项都作为参数存储在末尾。

数据库解决方案

当用户点击生成 link 时,我将从该页面收集到所有信息,并将其推送到表单中进行处理。然后,我会将所有信息存储在具有唯一 ID 的数据库中,并将该 ID 传递回用户,将其作为参数存储在生成的 link 中的 url 中。

当用户单击 link 时,您可以在页面加载时做的第一件事是查询 id 参数并显示先前存储的所有数据库字段。

根据您是否有任何 PHP 知识,您可能会发现这些 link 有用:

https://gist.github.com/webaware/4048580

http://www.dynamicdrive.com/forums/showthread.php?45895-How-to-populate-php-html-form-with-MySQL-data

URL参数解

我会再次从页面收集所有信息并以表格形式推送,然后再构建一个列出参数的 link。所以 www.tester.com?gender=female 等等

当用户单击 link 时,您可以在页面加载时做的第一件事是从 link 中提取参数并根据适当的输入显示它们。

这可能会让您了解使用 javascript 执行此操作的基础知识。

Pre-fill form field via URL in html

从表单中获取信息:How to save data from a form with HTML5 Local Storage?

这个对你特别有帮助:How can I pre-populate html form input fields from url parameters?

第二个选项肯定比较混乱,我自己可能会选择第一个选项。

希望他们都说得通 - 有任何问题就问吧!