模仿形式行为?用PHP打开一个链接

时间:2012-06-06 14:54:38

标签: php html forms

DHL可让您在其网站上跟踪您的包裹,例如:http://www.dhl.com/en/express/tracking.html。现在,当您输入跟踪号时,它会打开一个新窗口,如下所示:http://www.dhl.com/content/g0/en/express/tracking.shtml?brand=DHL&AWB= SOMENUMBER1234

现在我想在我的网站上模仿这种行为。我有一个表格,您可以输入跟踪号码,然后打开DHL网址。这可能吗?

2 个答案:

答案 0 :(得分:2)

是的,只需使用隐藏值和文本框创建一个:

<form method="GET" action="http://www.dhl.com/content/g0/en/express/tracking.shtml">
    <input type="hidden" name="brand" value="DHL" />
    <input type="text" name="AWB" size="{LengthOfTrackingNumber" />
</form>

答案 1 :(得分:2)

使用您在评论中提到的新网址(请同时更新您的帖子),您可以使用JavaScript并通过自己的服务器进行重定向。

根据您的服务器端脚本语言,您可能必须以不同方式处理服务器部分。以下示例适用于PHP:

客户端HTML:

<form method="GET" action="dhl_redirect.php" id="myForm">
    <input type="hidden" name="id" value="" id='myId' placeholder="Enter tracking number" />
</form>

客户端JavaScript:

(function(){
 var form=myForm;
 form.addEventListener('submit',function(evt){
   var dhlUrl="https://dhlforyou.nl/login/track/";

   var id=document.getElementById('myId');
   if(/^\d+$/.test(id.value)){
    if(myForm.target==='_blank'){
     window.open(dhlUrl+id.value);
    }else{
     location.href=dhlUrl+id.value;
    };

   evt.preventDefault();


 },false);
})();

服务器

<?php
 if(isset($_GET['id'])&&!is_nan(intval($_GET['id']))){
  $dhlId=$_GET['id'];

  header('Location: https://dhlforyou.nl/login/track/'.dhlId);//Redirect to DHL
  exit;//Skip the rest of the script

 }else{//ID not set or not a number

    header('Location: myHTMLform.htm');
 }
?>

如果您想在新标签页中打开此表单,只需将属性target设置为_blank