【问题标题】:PHP get url with variable value chosenPHP获取选择变量值的url
【发布时间】:2015-12-14 20:28:34
【问题描述】:

我正在尝试使用选项值创建动态链接,但它不起作用。有人可以帮我找出错误吗?

这是我的代码:

<select id="ID1"name="provincia">
 <option value=""selected="selected">Seleziona dal menuù a tendina</option> 
 <option value="agrigento">Agrigento    </option> 
 <option value="alessandria">Alessandria    </option> 
 <option value="ancona">Ancona  </option> 
 <option value="aosta">Aosta    </option> 
 <option value="aquila">L'Aquila    </option> 
</select>

<a href="https://domainname.com/clients/cart.php?a=add&pid=76&sld=<?php echo $_GET["provincia"]; ?>&systpl=e24&language=Italian"> Clicca Qui </a>

【问题讨论】:

  • 你不需要 php 这个...链接应该在同一页面上生成,对吧?
  • 这听起来像是 Javascript 的东西...

标签: php forms post dynamic get


【解决方案1】:

我认为您实际上需要javascript,否则您将需要通过get(或post)方法发送表单,刷新页面(或使用ajax)来更新链接......这是更简单的方法,恕我直言:

<select id="ID1"name="provincia" onchange="get_url(this.value);">
 <option value=""selected="selected">Seleziona dal menuù a tendina</option> 
 <option value="agrigento">Agrigento    </option> 
 <option value="alessandria">Alessandria    </option> 
 <option value="ancona">Ancona  </option> 
 <option value="aosta">Aosta    </option> 
 <option value="aquila">L'Aquila    </option> 
</select>

<a id="link" href="https://domainname.com/clients/cart.php?a=add&pid=76&sld=VAR&systpl=e24&language=Italian"> Clicca Qui </a>

JS:

function get_url(val) {
    link=document.getElementById('link');

link.href=link.href.replace(/sld=\w+/,'sld='+val);
    console.log(link.href);
}

演示:http://jsfiddle.net/emjj473g/1/

(F12,打开控制台,查看更新的链接,和/或点击链接查看它确实有效...)

说明,如果需要,您可以使用onchange 事件处理程序调用get_url() 函数,并将选定的值传递给它,然后替换a element/link 的href 属性的所需部分。当然,您可以附加条件来检查值(例如,用户必须选择有效值才能更新链接)。

【讨论】:

【解决方案2】:

你可以用 PHP 来做到这一点

<?php
$locations = ['Arizona', 'Siberia', 'Antarctica'];
if (isSet($_GET['selection'])) {
   $q = urlEncode($locations[$_GET['selection']]);
   header('Location: http://www.google.com/search?q=' . $q); }
?>
<form method="get" action="?">
   <p>
      <select id="selection" name="selection">
         <option value="0">Arizona</option>
         <option value="1">Siberia</option>
         <option value="2">Antarctica</option>
      </select>
   </p>
   <p><input type="submit"/></p>
</form>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-12
    • 2014-02-02
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    相关资源
    最近更新 更多