0

JavaScript関数は正常に機能しますが、PHP入力ボックスから異なるIDを取得する際に問題が発生します。

JavaScript

window.onload = function()
{   
new JsDatePick({
useMode:2,
target:"inputField1", //HERE I WOULD LIKE TO PASS DIFFERENT ID ex. "inputField1"+ "i"
dateFormat:"%Y-%M-%d",
yearsRange:[1978,2120],
limitToToday:false,
cellColorScheme:"beige",
imgPath:"main/img/",
weekStartDay:1
});

ループ用のPHP入力ボックス

<div class = "start_date" >
<strong><label for="start_date">Start Date</label></strong>
<br/><br/> 
<?php
for($k=1;$k<=$textboxindex;$k++)
{
echo "<input type=\"text\" class='textboxsize' id= \"inputField1\"   name=\"start_date[]\" value=\"$start_date\" />";
echo "<br/>";
 }
?>
</div>

正常に動作しますが、JavaScript関数で使用するID名を変えたいと思います。何か案は?

これは機能しません...

echo "<input type=\"text\" class='textboxsize' id= \"inputField+$k\" name=\"start_date[]\" value=\"$start_date\" />";

どんな助けでもありがたいです。

4

3 に答える 3

1

変化する:

id= \"inputField+$k\" name=...

に:

id=\"inputfield$k\" name=...

それを台無しにしているのは「+」記号です。PHPは「。」を使用します 文字列を連結します。 ECHOきちんと出$kて、あなたは何の問題もないはずです

于 2012-10-30T18:16:00.620 に答える
1

ほとんどの場合、JsDatePickウィジェットを使用します。そのtargetパラメーターは要素の単一のIDを受け取るため、JSコードをループでラップし、フィールドIDごとにウィジェットの個別のインスタンスを開始する必要があります。

入力フィールドのインデックス作成が1で始まると仮定します。

window.onload = function()
{   
    var i = <?=$totalNumberOfInputs;?>

    for(j=1;j<=i;j++) {  
        new JsDatePick({
            useMode:2,
            target:"inputField" + j, //HERE I WOULD LIKE TO PASS DIFFERENT ID ex. "inputField1" + j
            dateFormat:"%Y-%M-%d",
            yearsRange:[1978,2120],
            limitToToday:false,
            cellColorScheme:"beige",
            imgPath:"main/img/",
            weekStartDay:1
        });
    }
}

二重引用符で囲まれた文字列を連結するために+記号を付ける必要はありません(ちなみに、これはドットです)。

于 2012-10-30T18:21:15.150 に答える
0
 //this is doesn't work 
echo "<input type=\"text\" class='textboxsize' id= \"inputField$k\" name=\"start_date[]\" value=\"$start_date\" />";

+その記号を削除するだけです。

于 2012-10-30T18:16:53.650 に答える