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