【问题标题】:form input reload page with appended url带有附加 url 的表单输入重新加载页面
【发布时间】:2018-10-02 03:54:07
【问题描述】:

我在 wordpress 页面上发布了以下表格。

我想捕捉没有引荐来源网址的用户自行设置引荐来源网址(引荐来源网址部分全部由插件处理......在这里无关紧要)。

注册表单Url如下:

http://myurl.com/register/

下面的代码可以正常工作。直接插入到 wp 页面编辑器(文本)中。 除了它会创建一个如下所示的 Url:

http://myurl.com/register/?id=testinput

如何让生成的 Url 以这种方式格式化?:

http://myurl.com/register/sp/testinput

<h3>Your ID</h3>
<p>Please input your ID</p>

<form id = "submit_id_form" onsubmit="myIDFunction()">
    <input type="text" name="id">
    <input type="submit" value="Confirm">
</form>

<?php
function myIDFunction(){
    var action_src = "http://myurl.com/register/" + document.getElementsByName("id")[0].value;
    var submit_id_form = document.getElementById('submit_id_form');
    submit_id_form.action = action_src ;
} ?>

</script>

这是我正在尝试修改的原始表单代码(参考下面):

<form id = "your_form" onsubmit="yourFunction()">
<input type="text" name="keywords">
<input type="submit" value="Search">

function yourFunction(){
var action_src = "http://localhost/test/" + 
document.getElementsByName("keywords")[0].value;
var your_form = document.getElementById('your_form');
your_form.action = action_src ;
} 

</script>

我尝试附加 /sp/ 部分并删除附加的问号“?”在上面的代码中..但我完全坚持编码。 (可以这么说,我是“点击者”而不是编码员)

非常感谢你们 :)

Original Code is from here

【问题讨论】:

  • 你在 php 标签中编写 JavaScript 代码,我不认为可以这样工作
  • 另外你的 JavaScript 代码不正确,你在 'submit_id_form' 变量中取了形式,然后 your_from var 来自哪里?
  • 更新了原始问题,包括代码参考。不知道,但是在 wordpress 页面上代码可以工作(但只有在 PHP 标记内)
  • 如果有人想知道:从技术上讲,上面的代码在 WordPress 页面中有效,它正在从表单输入中设置一个新的推荐 URL 和 cookie .. 但 URL 格式仍然是错误的(显示在浏览器中)。

标签: javascript php html forms append


【解决方案1】:

你必须从 onsubmit as 调用的方法中返回 true

function yourFunction(){ 
var action_src = "http://localhost/test/" + document.getElementsByName("keywords")[0].value; 
var your_form = document.getElementById('your_form'); 
your_form.action = action_src ;
return true;
 } 

【讨论】:

  • 谢谢!但是我没有注意到任何区别..但如果这是正确的格式,我当然会使用它。现在如何格式化输出?从 ?id=testinput 到 /sp/testinput
  • 'testinput' 是您在文本框中输入的值吗?如果是这样,那么表单提交 URL 将是 localhost/test/testinput ,那么您只需将 test 替换为 sp
  • 没错。这是我的想法和尝试..但它不需要 /sp/ 并且总是附加 ?问号。可能有重写规则在起作用吗?如果我将域更改为 localhost 或 google.com 甚至都没有关系 .. 它总是按上述方式附加。
  • 好吧,这就是表单提交的工作方式,它永远不会附加查询字符串,您可以在浏览器控制台的网络选项卡中查看
  • 如果它在服务器上这样做,那么你不能用 JavaScript 修复它
猜你喜欢
  • 1970-01-01
  • 2012-05-13
  • 2017-10-02
  • 1970-01-01
  • 2015-11-08
  • 1970-01-01
  • 1970-01-01
  • 2017-01-22
  • 1970-01-01
相关资源
最近更新 更多