2016-11-04 20 views
0

ビルドしているWebページがあり、入力値が変更されたときにページのテキストを更新したい。基本的には、ここに私のアルゴリズムがありますが、それは私が正確にはあまり確かではないと思います。 (私はPHPを使用していることを明確にするために)しかし、私はHTMLやCSS以外の他の言語やJavascriptをあまり知らない。入力フィールドに基づいてWebページコンテンツを動的に変更する方法

Open Amount: $<input type="text" name="openamount"><br /> 
Close Amount: $<input type="text" name="closeamount"><br /> 
<script type="text/javascript"> 
    document.write("Profit $" + document.getElementsByName("openamount").value - document.getElementsByName("closeamount").value); 
</script> 

問題のカップルは、最初のページには、私はむしろそれはちょうど私が入力フィールドにコンテンツを置くように、第2のそれは更新されない、などのブランクから始めるだろうというとき、それは私にいくつかの未定義のものを与えてロードしたとき。しかし、私は実際にPOSTフォームの値の1つとして送られた利益を必要としています。事前に助けてくれてありがとう。

+0

だから私は、Webページ上で取得するすべてのundefinedundefinedundefinedされる(それが言う文字通り何ザッツ) 。私のWebサーバーのエラーログには、エラーが全く表示されません。 –

+1

おっと! 'document.write()'は古代です!なぜ更新されたコンテンツがドキュメントに再度注入されるようにAJAX呼び出しを行う入力フィールドにイベントハンドラを添付しないのですか? –

+0

私はAJAXを使ったことが一度もありませんでした。私はAJAXについてさらに研究します。ありがとう、結構です。 –

答えて

-1

私はあなたのdocument.writeを関数に囲んで、その関数を呼び出すために入力にonChangeを追加します。

+0

これは大丈夫ですよ。その上に。最終的な利益を実際に提出物のエントリーとして送付する最良の方法は何でしょうか。 –

+0

ちょうど私の頭の上から離れて、私は利益のための要素を作って、form.submit(私は提出の構文が分からないが、簡単に見つけられる)をするだろう。 – msimmons

-1

javascript以外に、必要な場合があります。フォーム要素も同様です。

<php 
if(isset($_POST['openamount']) && isset($_POST['closeamount'])) 
{ 
    print "PHP got values " . $_POST['openamount'] . " and " . $_POST['closeamount']; 
} 
?> 



<form method="POST" action=""> 
    Open Amount: $<input type="text" name="openamount"><br /> 
    Close Amount: $<input type="text" name="closeamount"><br /> 
    <input type="submit" value="submit money"> 
</form> 
0

あなたのJavaScriptは、ページが読み込まれたらすぐに実行されています。この代わりに、コードが変更されるたびにコードを実行するために、要素の変更イベントにフックする必要があります。 POST変数に利益を追加する場合は、利益値を保持するフォーム内に隠れた入力を作成するだけです。ここで

はすべて、この実証jsfiddleです: https://jsfiddle.net/yjvvjq49/

HTML:

<form method="POST"> 
    Open Amount: $<input type="text" id="openamount" name="openamount"><br /> 
    Close Amount: $<input type="text" id="closeamount" name="closeamount"><br /> 

    <input type="hidden" id="profit" name="profit"/> 
    Profit: $<span id="profitText"></span> 
</form> 

Javascriptを:

var openElement = document.getElementById("openamount"); 
var closeElement = document.getElementById("closeamount"); 
var profitElement = document.getElementById("profit"); 
var profitTextElement = document.getElementById("profitText"); 

function updateProfit() { 
    var profit = (Number(closeElement.value) - Number(openElement.value)).toFixed(2); 
    profitElement.value = profit; 
    profitTextElement.innerText = profit; 
} 

openElement.onchange = closeElement.onchange = updateProfit; 
関連する問題