传递js变量以形成动作URL

时间:2015-01-22 15:10:52

标签: javascript php jquery html

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

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

例如,如果用户输入' 2',则网址应为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很新,所以任何帮助都会受到赞赏。

3 个答案:

答案 0 :(得分:4)

JS应该是

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

答案 1 :(得分:1)

嗯,你可以尝试一下:

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

答案 2 :(得分:1)

如果他们在搜索输入中输入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)