JavaScript を使用して新しいテキスト ボックス フィールドを作成する、ここで見つけたコードの修正に成功しました。
スムーズな日付と時刻の選択のために、datepicker jquery プラグインで timepicker を使用しています。私は問題があります。ページをロードした後、タイムピッカーは正常に動作しますが、追加の入力フィールドを追加すると、タイムピッカーが動作しなくなります。
htmlコードは次のとおりです。
<head>
<link href="css/jquery-ui.css" rel="stylesheet" type="text/css" media="screen" />
<link href="css/timepicker.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery-ui.js"></script>
<script type="text/javascript" src="js/timepicker.js"></script>
</head>
<body>
<form id="obform" name="obform" action="test5.php" method="POST">
<div id="fields">
<p><label>Date From:</label><input class="timepicker" name="txtdatefrom0" type="text"/></p>
<p><label>Date To:</label><input class="timepicker" name="txtdateto0" type="text"/></p>
<input type="hidden" name="num" value="1"/>
<button id="start" type="button" onclick="addField()">Add</button>
<input type="submit" value="Submit"/>
</div>
</form>
</body>
ここにスクリプトがあります
<script>
$(document).ready(function(){
$('.timepicker').datetimepicker();
});
$('#start').click(function(){
$(".timepicker").datetimepicker("destroy");
$(".timepicker").datetimepicker();
});
var num=0;
function addField(){
num++; //1
if(num>4){
num--;
}
makefields();
}
function rmField(){
num--;
if(num<0){
num++;
}
makefields();
}
function makefields(){
var fields="";
for(var o=0;o<=num;o++){
fields+="<p><label>Date From: </label><input class=\"timepicker\" name=\"txtdatefrom"+o+"\" type=\"text\"></p>";
fields+="<p><label>Date To:</label><input class=\"timepicker\" name=\"txtdateto"+o+"\" type=\"text\"/></p>";
}
fields+="<br/><input type=\"hidden\" name=\"num\" value=\""+o+"\"/>";
if(num!=3){fields+="<button type=\"button\" onclick=\"addField()\">Add</button>";}
if(num>0){fields+="<button type=\"button\" onclick=\"rmField()\">Remove</button>";}
fields+="<input type=\"submit\" value=\"Submit\"/></form>";
document.getElementById("fields").innerHTML=fields;
}
</script>
また、データベースに新しい入力値を追加しようとしていますが、その方法についてのアイデアはありますか? 申し訳ありませんが、私はまだ Web 開発の初心者です。いつか良くなることを願って。
編集: これは、私がしばらくの間変更してきた php コードです。新しく作成したフィールドをデータベースにスムーズに挿入したい。追加するフィールドの最大数を 4 に設定しました。db テーブル (datefrom1、dateto1、datefrom2、dateto2 など) でそれらをキャッチする準備ができている一連のフィールドを作成することにより、フィールドを動的に挿入しようとしましたが、できますうまくいかない。
また、コードを使用して SQL に多数のフィールドを追加することは可能ですか? 2 つの重複がある場合、プログラムは特定の db テーブルに 2 つの新しいフィールドを作成しますか? できればそっちの方がいいです。私はネットのいたるところを見てきましたが、解決策を見つけることができませんでした。
$mysql_host = 'changed'; // put change for confidentiality
$mysql_user = 'changed';
$mysql_pass = 'changed';
$mysql_db = 'changed';
if(!mysql_connect($mysql_host, $mysql_user, $mysql_pass) || !mysql_select_db($mysql_db)) {
die(mysql_error());
}
$sets=mysql_real_escape_string($_REQUEST["num"]);
for($loop=0;$loop<$sets;$loop++){
$df="txtdatefrom".$loop;
$dt="txtdateto".$loop;
if(isset($_POST[$df]) && isset($_POST[$dt])) {
$datefrom=mysql_real_escape_string($_REQUEST[$df]);
$dateto=mysql_real_escape_string($_REQUEST[$dt]);
$query="INSERT INTO testob (datefrom,dateto) VALUES ('$datefrom','$dateto')";
$query_run=mysql_query($query);
}
else {
echo 'Fill up all fields';
}
?>