2017-03-28 13 views
0

javascript keypressイベントを使用してphp配列から自動的に日付を追加したいと思います。javascript keypressイベントからPHPの日付を記入する方法

日アレー:

$period = new DatePeriod(new DateTime("2015-07-03"), new DateInterval('P1M'), new DateTime("2018-07-09")); 
foreach ($period as $date) { 
    $dates[] = $date->format("M Y"); 
} 

テキスト入力:ここに私のコードの一部です

<input type="text" id="jumlah" size="3" maxlength="3" onkeyup="myFunction()" onkeypress="return hanyaAngka(event)"/> 
<p id="demo"></p> 

私が入力1、2015年8月I入力の場合ならば、私は2015年7月echoにしたいです2など。

どうすればいいですか?

これは私が試したものですが、それは働いていない:

<script> 
    function myFunction() { 
     var x = document.getElementById("jumlah").value; 
     var i='<?php echo $dates[x];?>'; 
     document.getElementById("demo").innerHTML = i; 
    } 
</script> 
+0

:あなたはこのような何かを行う必要があります

? –

+0

もちろんこの関数を試しています。myFunction(){ var x = document.getElementById( "jumlah")。value; \t document.getElementById( "demo")。innerHTML = x; } –

+0

jumlahで1を入力してからdemoでも1を入力すると、 –

答えて

0

問題は、サーバー側とクライアント側の変数をミックスしようとしています。

var x = document.getElementById("jumlah").value; 
var i='<?php echo $dates[x];?>'; 

xあなたがPHPで使用することはできませんどのような、javascriptの変数になります。 <?php echo $dates[x];?>わかりません、クライアント側のxは何ですか。

あなたはajaxを使用する必要があります。 xをパラメータとしてajax.phpに送信し、配列のpropery項目を返します。

このような何か:バックエンドとフロントエンド:PHP

$period = new DatePeriod(new DateTime("2015-07-03"), new DateInterval('P1M'), new DateTime("2018-07-09")); 
foreach ($period as $date) { 
    $dates[] = $date->format("M Y"); 
} 
echo $dates[$_GET['x']]; 
0

$('#jumlah').on('keyup', function() { 
    $.get('ajax.php', {x: $(this).val()}, function(response) { 
     $('#demo').html(response) 
    }); 
}); 

をフロリアンは、次の2つのものを混合している、言ったように。お使いのブラウザでJavaScriptが実行され、あなたのPHPあなたのウェブサーバ上で、彼らが何らかの形で通信する必要があるということをあなたは認識している

<script> 
    function myFunction() { 
     var value = document.getElementById("jumlah").value, 
      dates = <?php echo json_encode($dates); ?>; 

     document.getElementById("demo").innerHTML = dates[value]; 
    } 
</script> 
+0

'dates = <?php echo json_encode($ dates); ?>; '言語を混在させることも避けられますし、きれいなコードの原則を破ります。 – vaso123

+0

あなたは正しいです... –

関連する問題