2013-07-29 1 views
0

Я пытался обновить поле. Цена предложения и цена предложения - это поля, которые я хочу обновить. Выбираются gbp/usd, eur/usd и т. Д. Я бы хотел определить текстовое поле с такими переменными, как $bid, $bid1, bid2 и т. Д., Которые уже предопределены. Может кто-то помочь мне с этим?Как отображать данные в текстовом поле при выборе опции в форме

Это мой код.

<?php 
$timestamp=time();set_time_limit (0); 

?> 

<!DOCTYPE html> 
<head></head> 
<body> 
<meta charset="UTF-8"> 

<form action ="price.php" method="post"> 


<p>Symbol : <select name="currency_pair"> 
<option value="gbp/usd">GBP/USD</option> 
<option value="eur/usd">EUR/USD</option> 
<option value="usd/cad">USD/CAD</option> 
<option value="usd/chf">USD/CHF</option> 
<option value="usd/jpy">USD/JPY</option> 
<option value="eur/chf">EUR/CHF</option> 
<option value="eur/jpy">EUR/JPY</option> 
<option value="aud/usd">AUD/USD</option> 

</select></p> 
<p> Date : <input type="datetime" value="<?php echo date("Y-m-d ",$timestamp); ?>" name="date"/> </p> 
<p> Type : <input type="radio" name="type" value="buy">Buy 
<input type="radio" name="type" value="sell">Sell 
<p> Size : <input type="number"pattern="[0-9]+([\.|,][0-9]+)?" step="0.01"name="size"/></p> 
<p> Bid Price : <input type="number" step="any" readonly name="entry" value="<?php if ($currency_pair=="gbp/usd"){echo bid;}elseif($currency_pair=="eur/usd"){echo bid2;};?>" > 
Offer Price<input type="number" step="any" readonly="yes" name="entry" value="<?php if ($currency_pair=="gbp/usd"){echo bid;}elseif($currency_pair=="eur/usd"){echo bid2;};?>" ></p> 
<p> Stop Loss : <input type="number"step="any" name="stoploss"/></p> 
<p> Take Profit : <input type="number"step="any"name="takeprofit"/></p> 

<input type="submit" value="Submit"/> 
</form> 
<script> 
</script> </body> </html> 
+0

Вы можете исправить ошибки в первую очередь? Например, '

' может не делать то, что вы думаете. Кроме того, кнопка отправки вне формы не будет работать.И у вас больше ошибок, но это не так проблематично. –

+0

Обратите внимание, что после загрузки php-страницы дальнейший разбор кода php-кода не будет выполняться до тех пор, пока не будет обновлен или не будет вызван снова. Таким образом, вы должны будете сделать ajax-вызовы, чтобы u мог обновлять содержимое текстового поля. – Mayur

+0

Да, я понимаю это, и я сделал это на другой странице. Я пытаюсь выяснить, как я могу позволить полям 2 текста отображать значения переменных. Моя переменная - $ bid, $ bid1, $ bid2, $ bid3 и т. Д. как назначить выбранные параметры для каждой переменной 2, чтобы я мог отображать в текстовом поле 2? –

ответ

0

Вот PHP-препроцессором версия кода, который содержит только HTML и JS:

<!DOCTYPE html> 
<head></head> 
<body> 
<meta charset="UTF-8"> 

<form action ="price.php" method="post"/> 
<form> 
<p>Symbol : <select name="currency_pair" id="select_pair" onchange="pair_selected()"> 
<option value="gbp/usd">GBP/USD</option> 
<option value="eur/usd">EUR/USD</option> 
<option value="usd/cad">USD/CAD</option> 
</select></p> 
<script> 
var courses = {}; 
courses['gbp/usd'] = [ 10, 15 ]; 
courses['eur/usd'] = [ 14, 16 ]; 
courses['usd/cad'] = [ 21, 23 ]; 
function pair_selected() { // to change your edits 
    var e = document.getElementById("select_pair"); 
    var pair = e.options[e.selectedIndex].value; 
    var course = courses[pair]; 
    document.getElementById("bid").value = course[0]; 
    document.getElementById("offer").value = course[1]; 
} 
window.onload = function() { pair_selected(); } // to init your edits 
</script> 

<p> Date : <input type="datetime" value="1970-01-01 " name="date"/> </p> 
<p> Type : <input type="radio" name="type" value="buy">Buy 
<input type="radio" name="type" value="sell">Sell 
<p> Size : <input type="number"pattern="[0-9]+([\.|,][0-9]+)?" step="0.01"name="size"/></p> 
**<p> Bid Price : <input id="bid" type="number" step="any" readonly name="entry" value="" > 
    Offer Price<input id="offer" type="number" step="any" readonly="yes" name="entry" value="" ></p>** 
<p> Stop Loss : <input type="number"step="any" name="stoploss"/></p> 
<p> Take Profit : <input type="number"step="any"name="takeprofit"/></p> 
<input type="submit" value="Submit"/> 
</form> 

</body> 
</html> 

протестирована и работает в IE 8- 10, Firefox, Chrome, Opera 15 и Safari

+0

WOW Спасибо !!! мне удалось это сделать уже, но знаете ли вы, как я их обновляю (текстовое поле)? потому что они являются живыми данными. –

+0

Выполнение данных «вживую» не так просто. Вам нужно будет запустить [AJAX-call] (http://en.wikipedia.org/wiki/Ajax_ (программирование)) для периодического получения новых данных (из сценария сервера) или даже использовать [технологию push-сервера] (http://en.wikipedia.org/wiki/Push_technology) –

0

Во-первых, вам необходимо получить каркас. Наиболее часто используемая структура - jQuery.

Во-вторых, я хотел бы посмотреть здесь код о том, как получить выбранный текст: jQuery Get Selected Option From Dropdown

Наконец, вы должны связать relvant код соответствующего события. В jQuery это событие change().

Пример

$('#currency_pair').change(function() { 
    // Note: 'currency_pair' should be an ID, not a name. 
    $('#textBox').text($('#currency_pair').val()); 
}); 

Это должно идти в отдельный файл, и он должен быть связан в ваш HTML с помощью script тега, который вы можете найти учебник здесь: http://www.w3schools.com/tags/att_script_src.asp

0
  1. Вы должны использовать один PHP массива, а не отдельные переменные $ ставка, $ bid2 ...

  2. Вы должны генерировать структуру данных JavaScript (объект массивов в коде ниже, но это может варьироваться) от вашего PHP массива

  3. Вы должны использовать событие onchange вашей select для поиска структуры данных Javascript, найти там соответствующие данные (для выбора пользователя) и заменить его в свои правки

  4. Изучение и использование рамок как jquery вместо чистого JS будет проще и лучше, поэтому рекомендуется , но не обязательно. В приведенном ниже коде используется только чистый JS, потому что вы не упомянули о знании или использовании каких-либо фреймворков в своем вопросе.

Вот код:

<? 
$timespamp = time(); 
$conversions = array(
    "gbp/usd" => array(10,15), 
    "eur/usd" => array(14,16), 
    "usd/cad" => array(21,23) 
    // and so on 
); 
?> 
<!DOCTYPE html> 
<head></head> 
<body> 
<meta charset="UTF-8"> 

<form action ="price.php" method="post"/> 
<form> 
<p>Symbol : <select name="currency_pair" id="select_pair" onchange="pair_selected()"> 
<? foreach($conversions as $pair=>$course) { ?> 
<option value="<?=$pair?>"><?=strtoupper($pair)?></option> 
<? } ?> 
</select></p> 
<script> 
var courses = {}; 
<? foreach($conversions as $pair=>$course) { ?> 
courses['<?=$pair?>'] = [ <?=$course[0]?>, <?=$course[1]?> ]; 
<? } ?> 
function pair_selected() { // to change your edits 
    var e = document.getElementById("select_pair"); 
    var pair = e.options[e.selectedIndex].value; 
    var course = courses[pair]; 
    document.getElementById("bid").value = course[0]; 
    document.getElementById("offer").value = course[1]; 
} 
window.onload = function() { pair_selected(); } // to init your edits 
</script> 

<p> Date : <input type="datetime" value="<?php echo date("Y-m-d ",$timestamp); ?>" name="date"/> </p> 
<p> Type : <input type="radio" name="type" value="buy">Buy 
<input type="radio" name="type" value="sell">Sell 
<p> Size : <input type="number"pattern="[0-9]+([\.|,][0-9]+)?" step="0.01"name="size"/></p> 
**<p> Bid Price : <input id="bid" type="number" step="any" readonly name="entry" value="" > 
    Offer Price<input id="offer" type="number" step="any" readonly="yes" name="entry" value="" ></p>** 
<p> Stop Loss : <input type="number"step="any" name="stoploss"/></p> 
<p> Take Profit : <input type="number"step="any"name="takeprofit"/></p> 
<input type="submit" value="Submit"/> 
</form> 

</body> 
</html> 
+0

Могу ли я узнать, что я помещаю в (?>)? –

+0

Код PHP внутри скобки, код HTML и JS снаружи. В целом он работает «как шаблон». Когда PHP-код выполняется, блокирует поток управления и генерирует некоторый (возможно пустой) вывод для формирования HTML + JS-документа. Например, выводит значение выражения ($ v1 + $ v2) Пожалуйста, прочитайте документы PHP для более подробного объяснения. –

+0

oh .. я пробовал код. он, похоже, не работает, выбор $ currency_pair. –

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