HTML基于文本框条目打开URL

时间:2014-10-22 08:48:13

标签: html forms

我只知道基本HTML

我想在我的网站上放置一个文本框,如果用户输入了他的订单号,它将打开该订单摘要的链接。

指向这些订单摘要的链接以ORDERNUMBER-DATE格式保存在我的网络服务器上(例如:http://www.mywebsite.com/orders/OD12354-22.02.14.html

我想要的只是2个文本框,用户输入订单号和日期。 点击提交时,应该自动将用户带到链接。

2 个答案:

答案 0 :(得分:0)

HTML本身就不足以满足这一要求。最好的选择是使用Javascript(可能是jQuery)来获取文本框的内容,然后在按下提交按钮时,让浏览器重定向到您的静态路径以及动态订单信息。您的HTML示例可能如下:

<form>
    <input id="order" name="order" type="text" required>
    <input id="date" name="date" type="date" required>
    <input type="submit" value="submit">
</form>

然后使用jQuery在submit:

上提取输入内容
$('form').on('submit', function(e) {
  e.preventDefault();
  var order = $('#order').val();
  var date = $('#date').val();

  // Format date and order input as necessary

  // Construct URL path and redirect here
  window.location('http://www.mywebsite.com/orders/' + order + '-' + date + '.html');
});

显然,在执行重定向之前,您需要验证并确保输入是安全的。阅读Javascriptwindow.location()

答案 1 :(得分:0)

这是一种在PHP中实现的方法。您当然需要验证用户是否以正确的格式输入了数据,但这是另一章。

  

findorder.php

<?php
if (!empty($_POST['order']) && !empty($_POST['date'])) {

    $redirect = "orders/" . $_POST['order'] . "-" . $_POST['date'] . ".html";

    if(file_exists($redirect) == true) {
        header('Location: ' . $redirect);
        die();
    }
    else {
        echo "Order not found";
    }

}
?>

<form action="findorder.php" method="POST">
    <input id="order" name="order" type="text" placeholder="Order number">
    <input id="date" name="date" type="date" placeholder="Date">
    <input type="submit" value="submit">
</form>

更新:我添加了file_exists位。请注意,您无法在那里传递正确的URL,只需传递文件路径。