Как передавать переменные в php, используя GET без типа?

#php

#php

Вопрос:

  <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"/>           
  

Теперь я хочу передать третью переменную, которая представляет собой объединение food pizza drink в URL
Я не хочу создавать новый <input name="total" type="text" size="2"/>

Возможно ли это?

Редактировать:

Я хочу сделать это перед отправкой значений.

 I will have a url like
 http://www.abc.com/amp;food=tastyamp;pizza=cheezeamp;drink=pepsi
I want the url to be
 http://www.abc.com/amp;food=tastyamp;pizza=cheezeamp;drink=pepsiamp;total=tastypizzacheezepepsi
  

Комментарии:

1. Как бы вы различали, кто заказывает 11 блюд, 2 пиццы и 1 напиток, т.е. кто заказывает 1 блюдо, 1 пиццу и 21 напиток? Оба были бы 1121 .

2. @MarcB я предполагаю, что операция подразумевала добавление, а не объединение

3. re: ваше обновление: почему вы хотите добавить переменную get?

Ответ №1:

Почему бы просто не сделать это на стороне сервера?

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

Ответ №2:

Ну, как только это будет отправлено, просто объедините (после проверки)

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

Или, если вы не хотите этого делать, вам придется применить некоторую магию JavaScript на стороне клиента (но это не всегда надежно)

Комментарии:

1. Возможно, вы имели в виду использовать . вместо для объединения строковых значений?

2. @Phoenix, зависит от того, какая была информация. в OP использовался

3. А, я понимаю, что вы имеете в виду. Мне не приходило в голову, что значения этих входных данных могут быть числовыми.

4. В примере есть текст для этих значений.

5. @Tomalak, это было после того, как OP обновил Q, и я добавил комментарий для этого случая

Ответ №3:

Предполагая, что вам не нравятся ответы выше, используя 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'];
  

Ответ №4:

Это должно сработать

 $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']));