javascript - 动态表单操作 URL

标签 javascript php jquery

我正在尝试在我的网站上创建一个表单,其中用户有一个文本字段,可用于输入注册号。我希望将注册号添加到操作 URL 的末尾,这样当该页面加载时,我可以使用 PHP 分解 URL 并获取号码。这是我正在寻找的示例...

<form action="http://mywebsite.com/registrations/123456789">
<input type="text" name="registrationnumber">
<input type="Submit" value="Submit">
</form>

是否可以将输入到称为注册号的文本字段中的任何内容传递到表单指向的 URL?也许更简单的方法是创建一个带有按钮的文本字段,单击该按钮时,通过在末尾添加注册号来动态创建链接到的 URL。

有人知道如何做到这一点吗?

最佳答案

事实上,您不需要表单来进行 AJAX 调用。一个简单的输入和按钮就足够了。

我创建了一个进行 AJAX 调用的函数,它将转换包含要发送给 PHP 的参数的所有键/值对的对象 params,并将其连接成 URL 字符串:

function ajax(file, params, callback) {

  var url = file + '?';

  // loop through object and assemble the url
  var notFirst = false;
  for (var key in params) {
    if (params.hasOwnProperty(key)) {
      url += (notFirst ? '&' : '') + key + "=" + params[key];
    }
    notFirst = true;
  }

  // create a AJAX call with url as parameter
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      callback(xmlhttp.responseText);
    }
  };
  xmlhttp.open('GET', url, true);
  xmlhttp.send();
}

假设您有一个输入字段:

<input id="code" type="text">
<button id="sendData">Send</button>

以下是我们如何使用函数ajax:

function sendData() {

  parameters = {
    inputValue: document.querySelector('#code').value
  };

  ajax('target.php', parameters, function(response) {
    // add here the code to be executed when data comes back to client side      
    // e.g. console.log(response) will show the AJAX response in the console
  });

}

然后,您可以使用事件监听器将按钮附加到 sendData:

document.querySelector('#sendData').addEventListener('click', sendData)

关于javascript - 动态表单操作 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50787707/

相关文章:

php - 如何实现网页的那个移动的盒子(屏幕纸?)?

javascript - Jquery 的 $.get 调用在 Chrome 中不返回数据

jquery - 触发一个以 name 作为变量名的函数

javascript - 铯 JS : center map in 2d scene mode

php - PDO 搜索查询,让它像 Android 联系人搜索

javascript - Angularjs 搜索整个 HTML

PHP PDO 准备和执行语句

php - Tinymce Enter 键

javascript - 检查数字/值在输入中是否按升序排列(jquery)

javascript - 音频元素中的load()方法是否重新下载音频?