2016-11-21 3 views
0

С PHP сгенерировать что-то вроде этого:изменение значения HTML-поле ввода с PHP

<form> 
<table> 
<tr> 
    <td>Total:</td> 
    <td><input type="text" id="total" disabled value="0"> </td> 
</tr> 
<tr> 
    <td>Field 1:</td> 
    <td><input type="text" id="field1" value="1"> </td> 
</tr> 
<tr> 
    <td>Field 2:</td> 
    <td><input type="text" id="field2" value="2"> </td> 
</tr> 
</table> 

Теперь первый вход («общий») должен содержать сумму всех «поле» входы. Суммирование их в переменной PHP не является проблемой. Но как только я упаду в конце таблицы, могу ли я изменить значение «total»?

Обходные я могу думать являются

  • размещающих всего в конце; но тогда моя страница не будет выглядеть так, как я желаю.
  • выполните цикл данных дважды, сначала сделайте сумму, затем напишите HTML. Но это выглядит неэффективно.
  • хранение суммы в скрытом входе и запись ее позже с помощью javascript.

Итак, могу ли я все еще изменить значение «total» с PHP после создания всей таблицы?

+0

Я думаю, вы должны использовать JavaScript –

+0

Вам нужно будет использовать JavaScript. Как только ваш PHP загрузится на экран, вот и все. Вам нужно будет обновить страницу еще раз, чтобы обновить или использовать запрос AJAX для вызова скрипта PHP и обновления данных таблицы, останавливающих необходимость обновления. – Kitson88

+0

вы должны использовать javascript или ajax. –

ответ

2

Ну, вы все еще можете сделать это на PHP, если это то, что вам нужно/нужно. Просто не повторяйте свои данные внутри цикла, сохраните вывод в двух переменных и распечатайте его после цикла в том порядке, в котором вы нуждаетесь. Что-то вроде этого

$total = 0; $bodytr = ""; 

for($i=1;$i<=10;$i++){ 
    $total += $i; 
    $bodytr .= "<tr><td>$i</td></tr>\n"; 
} 

echo "<table>\n"; 
echo "<tr><td>$total</td></tr>\n"; 
echo $bodytr; 
echo "</table>"; 
+0

Да, это более или менее то, что @CBroe предложил в своем комментарии. Мне это выглядит лучше, чем мои обходные пути. Благодарю. –

Смежные вопросы