Pase la variable js para formar la url de acción

No estoy seguro si esto es posible, o si lo estoy haciendo de la manera incorrecta?

Tengo un formulario que, cuando se envía, debe enviar al usuario a una URL dependiendo de la entrada.

Por ejemplo, si los usuarios ingresan ‘2’, la URL debe ser books/itemView?id=2

He creado un var = id , que toma los datos del cuadro de entrada de búsqueda. ¿Es posible agregar esta variable a mi acción de formulario actual? Tal vez hay una manera más eficiente?

Mi código actual es el siguiente;

 <form id="search" action="books/itemView?id=" method="post">    

Mi JS

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

Muy nuevo para JS así que cualquier ayuda apreciada.

JS debería ser

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

Si ingresan 2 en la entrada de búsqueda, su ID se agregará a su url como:

 url?search=2 

Por lo tanto, tal vez desee cambiar el nombre de su entrada de búsqueda a ID o agregar otro campo de entrada.

  

Eso debería ser todo lo que necesita sin necesidad de jquery o javascript.

Cuando lo envíe debe resultar en:

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

Hmm, puedes intentar con eso:

 $(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); }); }); 

Antes de enviar el formulario, la función jQuery’s on('submit', handler) ejecuta el código en el handler modificando la acción del atributo que desee.

originalAction variable originalAction almacena el contenido del atributo de action que se generó parcialmente en php, luego anexas tu id creado dinámicamente con js.

Eche un vistazo a la función JQuery attr (), que le permite cambiar el atributo de un elemento HTML.

Para cambiar la acción del formulario, podrías hacer algo como

 $('#myForm').attr('action', 'myurl.php?viewItem=2'); 

¿Esto ayuda?