그래서 현재 내 페이지에 6 개의 HTML 날짜 요소가 있습니다. 페이지가 다시로드 될 때 입력 된 데이터가 저장되도록 입력 한 내용을 저장하도록 만들려고합니다. 그래서 양식이 게시 될 때 데이터가 사이트 디렉토리의 텍스트 문서에 저장되도록 PHP를 설정했습니다. 완벽하게 작동하는 것은 이제 다시 작동하는 저장된 문서 정보를 얻기 위해 PHP 변수를 만들었습니다. 이제 Javascript를 실행하면 PHP 변수가 건너 뛰어 올바른 정보를 출력하고 있음을 알 수 있습니다. 그러나 날짜 요소는 비어 있습니다. 왜 이것이 될 수 있는지 아는 사람이 있습니까?
요소 예 출력
window.onload = function (){
var date1Value = 2016-10-01;
var date2Value = 2016-10-02;
var date3Value = 2016-10-03;
var date4Value = 2016-10-04;
var date5Value = 2016-10-05;
var date6Value = 2016-10-06;
document.getElementById("date1").value = date1Value;
document.getElementById("date2").value = date2Value;
document.getElementById("date3").value = date3Value;
document.getElementById("date4").value = date4Value;
document.getElementById("date5").value = date5Value;
document.getElementById("date6").value = date6Value;
}
PHP 스 니펫
<?php
$myFile=fopen("USERS/".$Username."/RiskAssessment"."/Date1.txt","r") or exit("Can't open file!");
$setA5 = fgets($myFile);
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment"."/Date2.txt","r") or exit("Can't open file!");
$setA6 = fgets($myFile);
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment"."/Date3.txt","r") or exit("Can't open file!");
$setA11 = fgets($myFile);
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment"."/Date4.txt","r") or exit("Can't open file!");
$setA12 = fgets($myFile);
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment"."/Date5.txt","r") or exit("Can't open file!");
$setA17 = fgets($myFile);
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment"."/Date6.txt","r") or exit("Can't open file!");
$setA18 = fgets($myFile);
fclose($myFile);
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$date1 = $_POST['date_1A5'];
$date2 = $_POST['date_1A6'];
$date3 = $_POST['date_2A5'];
$date4 = $_POST['date_2A6'];
$date5 = $_POST['date_3A5'];
$date6 = $_POST['date_3A6'];
$myFile=fopen("USERS/".$Username."/RiskAssessment"."/Date1.txt","w") or exit("Can’t open file!");
fwrite($myFile, $date1);
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment"."/Date2.txt","w") or exit("Can’t open file!");
fwrite($myFile, $date2);
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment"."/Date3.txt","w") or exit("Can’t open file!");
fwrite($myFile, $date3);
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment"."/Date4.txt","w") or exit("Can’t open file!");
fwrite($myFile, $date4);
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment"."/Date5.txt","w") or exit("Can’t open file!");
fwrite($myFile, $date5);
fclose($myFile);
$myFile=fopen("USERS/".$Username."/RiskAssessment"."/Date6.txt","w") or exit("Can’t open file!");
fwrite($myFile, $date6);
fclose($myFile);
}
?>
자바 스크립트
<script>
window.onload = function (){
var date1Value = <?php echo $setA5;?>;
var date2Value = <?php echo $setA6;?>;
var date3Value = <?php echo $setA11;?>;
var date4Value = <?php echo $setA12;?>;
var date5Value = <?php echo $setA17;?>;
var date6Value = <?php echo $setA18;?>;
document.getElementById("date1").value = date1Value;
document.getElementById("date2").value = date2Value;
document.getElementById("date3").value = date3Value;
document.getElementById("date4").value = date4Value;
document.getElementById("date5").value = date5Value;
document.getElementById("date6").value = date6Value;
}
</script>
HTML 스 니펫
<html>
<body>
<form method="post" action=thisPage.php>
<input type="date" name="date_1A5" id="date1">
<input type="date" name="date_1A6" id="date2">
<input type="date" name="date_2A5" id="date3">
<input type="date" name="date_2A6" id="date4">
<input type="date" name="date_3A5" id="date5">
<input type="date" name="date_3A6" id="date6">
</form>
<body>
</html>
정확히 무엇이 잘못되었는지 보여 주므로 예제 출력을 추가해 주셔서 감사합니다. :)
하지만 먼저이 코드에는 jQuery가 없다는 점을 지적하고 싶습니다. 당신이 가진 것은 평범한 JavaScript입니다.
그런 다음 문제는 JavaScript 부분의 날짜 주위에 따옴표가 없다는 것입니다. 날짜를 인쇄하는 PHP 코드 주변에 추가하면 작동합니다.
추신 : 이러한 날짜를 포함하려면 데이터베이스 또는 적어도 하나의 파일을 사용하는 것이 좋습니다. 이와 같은 여러 파일은 비효율적 일뿐만 아니라 매우 지저분합니다.
단일 파일을 사용하는 방법에 대한 간단한 예 :
// The file() function automatically creates an array on newlines.
$dates = file ("dates.txt");
if (!$dates) {
// Show an error message on missing dates.
}
?>
<script>
// $dates[0] contains the first date, increase index by 1 to get the next date.
document.getElementById ('date_1').value = '<?php echo $dates[0]; ?>'
PPS : 사용자로부터받은 데이터가 실제로 유효한 날짜인지 확인하기 위해 입력 유효성 검사도 조사해야합니다. 이를 수행하는 가장 쉬운 방법은 DateTime
클래스 와 함께 구문 분석을 시도하는 것입니다 .
// If the user has submitted data...
if (isset ($_POST['submit'])) {
$dates = array ();
// Ensure we get a valid date.
$date[0] = DateTime::createFromFormat ('Y-m-d', $_POST['date_1']);
if (!$dates[0]) {
// Invalid date, handle it.
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다