我知道我可以从表单中传递查询参数,并期望它们在查询字符串中:
<form method="GET">
<input type="text" name="param" value="value" />
<input type="submit" value="submit" />
</form>
这导致
http://blah-blah-blah/blah?param=value
但是,在我的webapp中,我正在使用路径参数。要访问图书馆中的一本书#459,您需要访问
/books/459
并检查一个,POST到
/books/459/checkout
其中459是路径参数。当我尝试
<form action="/books/{book_id}">...</form>
它需要我
/books/%7Bbook_id%7D
而不是
/books/459
我是否需要javascript或其他东西来构建URI?
答案 0 :(得分:1)
您可能需要以下内容:
<form onsubmit="this.action = this.action + this.book_id.value;" ...>
然而,使动作依赖于脚本是糟糕的设计。您的服务器处理URI ...?book_id=value
更加健壮,它根本不需要任何客户端脚本。
答案 1 :(得分:0)
如果您使用PHP生成HTML,则下面的代码应该可以使用(未经测试)。
$book_id = 459;
<form action="/books/{$book_id}">...</form>
或者,您可以使用JavaScript动态修改html。最好不要这样做,因为有些用户可能会禁用JavaScript。 (另)
$('form').attr('action','/books/' + book_id);
答案 2 :(得分:0)
感谢RobG
我从移动应用程序调用WhatsApp时也使用了同样的方法
效果很好
<form action="https://wa.me/"
onsubmit="this.action = this.action + this.mobile.value; this.submit();">
<input type="tel" name="mobile" size="10" value="91xxxxxxxxxx"/>
<input type="text" name="text" value="Thanks Vijayan!" />
<input type="submit" value="WhatsApp" />
</form>