如何在 php 中使用 GET 在没有类型的情况下传递变量


How to pass variables in php using GET without type?

 <form method="get" action=..... >
                      Food <input name="food" type="text"  size="1" />
                  Pizza <input name="pizza" type="text"  size="2" />
                  Drink <input name="drink" type="text" size="2"/>           

现在我想传递第三个变量,它是 URL 中食物+披萨+饮料的串联我不想创建新<input name="total" type="text" size="2"/>

这可能吗?

编辑:

我想在提交值之前执行此操作。

I will have a url like
 http://www.abc.com/&food=tasty&pizza=cheeze&drink=pepsi
I want the url to be
 http://www.abc.com/&food=tasty&pizza=cheeze&drink=pepsi&total=tastypizzacheezepepsi

为什么不在服务器端这样做呢?

$allTogether = $_GET["food"] . $_GET["pizza"] . $_GET["drink"];

一旦提交,只需连接(验证后)

$total = $_GET['food'] + $_GET['pizza'] + $_GET['drink'];
         //assuming the _GETs were numbers, otherwise use `.` to concatenate

或者,如果你不想这样做,你将不得不在客户端做一些JavaScript魔法(但这并不总是值得信赖的)

假设你不喜欢上面使用PHP连接的答案,你可以使用Javascript来做到这一点。

<script type="text/javascript">
function addTotal(food, pizza, drink) {
   document.getElementById("total").value = food + drink + pizza;
}
</script>
<form method="get" name="fname" action="" onSubmit="addTotal(document.fname[0].value,document.fname[1].value,document.fname[2].value)" >
Food <input name="food" type="text"  size="1" />
Pizza <input name="pizza" type="text"  size="2" />
Drink <input name="drink" type="text" size="2"/> 
<input type="hidden" name="total" id="total" value="" />
</form>

在你的PHP文件中,你现在应该得到

$_GET['food'];
$_GET['pizza'];
$_GET['drink'];
$_GET['total'];

这应该可以解决问题

$sep = ""; //if you want a space in between each just change this to a space.
$concat = implode($sep, array($_GET['food'], $_GET['pizza'], $_GET['drink']));
相关文章: