传递 js 变量以形成操作 url


Pass js variable to form action url

我不确定这是否可能,或者我是否以错误的方式做?

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

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

我创建了一个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>

我的简斯

$(document).ready(function(){
var id = $('#search').val();
});

对JS很陌生,所以任何帮助都值得赞赏。

JS 应该是

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

如果他们在搜索输入中输入 2,那么您的 id 将附加到您的 url 中,如下所示:

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)

嗯,你可以试试:

$(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