【问题标题】:Pass js variable to form action url传递 js 变量以形成动作 url
【发布时间】:2015-01-22 23:36:03
【问题描述】:

我不确定这是否可行,或者我的做法是否错误?

我有一个表单,当提交时,应该根据输入将用户发送到一个 URL。

例如,如果用户输入“2”,则 URL 应为 books/itemView?id=2

我创建了一个var = id,它接受搜索输入框数据。是否可以将此变量添加到我当前的表单操作中?也许有更有效的方法?

我目前的代码如下;

<form id="search" action="<?php echo URL; ?>books/itemView?id=" method="post">
<input type="text" name="search" id="demo"/>
<input type="submit" value="Submit">
</form>

我的 JS

$(document).ready(function(){

var id = $('#search').val();

});

对 JS 很陌生,所以任何帮助表示赞赏。

【问题讨论】:

  • 您应该使用GET 来检索数据。如果这样做,查询字符串将为?search=searchVal。只需将文本输入的名称属性更改为id

标签: javascript php jquery html


【解决方案1】:

JS应该是

$('#search').on('submit', function() {
    var id = $('#demo').val();
    var formAction = $('#search').attr('action');
    $('#search').attr('action', formAction + id);
});

【讨论】:

  • 是否可以在 formAction + id 之后添加另一个 var(例如,如果我有另一个隐藏的输入 val 名称 isbn?)。类似于 formAction + id + isbn
  • formAction + id + '&isbn=' + isbn
【解决方案2】:

如果他们在搜索输入中输入 2,那么您的 id 将被附加到您的网址中,例如:

url?search=2

因此,也许您想将搜索输入的名称更改为 id 或添加另一个输入字段。

<form id="search" action="<?php echo URL; ?>books/itemView" method="post">
<input type="text" name="id" id="demo"/>
<input type="submit" value="Submit">
</form>

这应该是你所需要的,不需要 jquery 或 javascript。

当你提交它应该导致:

books/itemView?id=2(or whatever is in the search/id input when you click submit)

【讨论】:

  • 那么该方法是否应该赌'get'?
  • 是的,如果您希望将值附加到 URL。
  • @johnny_s 是的,如果您希望将其附加到 url。否则它仍然通过你在url中看不到它。
【解决方案3】:

嗯,你可以试试:

$(document).ready(function(){
  var $form = $('#search');
  var id = $form.val();
  var $search = $('#demo');
  var originalAction = $search.attr('action');
  $form.on('submit', function() {
    $search.attr('action', originalAction + id);
  });
});

在提交表单之前,jQuery 的on('submit', handler) 函数会执行handler 中的代码修改你想要的属性动作。

originalAction 变量存储了在 php 中部分生成的 action 属性的内容,然后您附加使用 js 动态创建的 id

【讨论】:

    猜你喜欢
    • 2019-05-24
    • 2017-03-12
    • 2012-04-24
    • 2014-10-25
    • 2021-11-23
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    相关资源
    最近更新 更多