2017-02-25 1 views
0

관리자가 오늘 셀의 배경색을 변경할 수있는 달력 작업을하고 있습니다. 변경 사항이 서버에 저장됩니다. 지금은 작동하지 않습니다. 이 classChange.php에서 PHP 코드post()를 사용하여 데이터베이스 업데이트

for(i=0; i<myDays.length; i++) { // Goes through each TD and creates a click event 
myDays[i].addEventListener("click", function(){ 
    if(this.classList.contains("avail")) { 
     this.classList.toggle("avail"); 
     this.classList.toggle("halfy"); 
     $.post("classChange.php", { dID: this.id, dClass: "halfy" }); 
    } 

: 다음은 자바 스크립트의 일부입니다

셀에
if(isset($_POST["dID"])){ 
    $stmt = $db->prepare("UPDATE original SET class=? WHERE id=?"); 
    $stmt->bind_param("ss", $dClass, $dID); 

    $dID = $_POST["dID"]; 
    $dClass = $_POST["dClass"]; 

    $stmt->execute(); 
    $stmt->close(); 
} else { 
    echo "Code error, dummy!"; 
} 

클릭이 제대로 셀의 클래스 (및 색상) 변경,하지만하지 않습니다 데이터베이스를 갱신하십시오. 나는 어떤 오류도 내지 않고있다. post() 코드 나 PHP 코드에서 문제가되어야한다고 생각합니다. 어떤 충고?

+0

변수를 사용한 후에 변수를 정의하는 것이 성공적인 방법은 아닙니다. Catalin Minovici가 문제를 충분히 해결했다면, 녹색 진드기를 수여하십시오. 그렇지 않으면 문제를 해결하기 위해 질문을 편집하십시오. – mickmackusa

답변

1

변수를 사용하기 전에 먼저 변수를 정의해야합니다.

$dID = $_POST["dID"]; 
$dClass = $_POST["dClass"]; 
$stmt = $db->prepare("UPDATE original SET class=? WHERE id=?"); 
$stmt->bind_param("ss", $dClass, $dID); 
+0

응답 해 주셔서 감사합니다. 나는 당신의 방법을 시도했으나 효과가 없었습니다. 저는 여러 가지 이유로 일반적인 $ conn 대신 $ db를 사용하고 있습니다. PDO가 아닌 MySQLi를 사용하고 있습니다. "ss"는 다음 두 변수가 문자열임을 나타냅니다. 전에이 방법을 사용했습니다. W3School에서 찾을 수 있습니다 : [link] (https://www.w3schools.com/php/php_mysql_prepared_statements.asp) 내가했던 다른 코드에 대해 PHP 오류가 발생했지만 어떻게 확인할 수 있습니까? JS 코드에 console.log를 추가했는데 클릭 한 번으로 올바른 정보가 생성되었습니다. 할 수 있으면 도와주세요! – user6285791

+0

변수를 사용하기 전에 변수를 정의하면 코드에서 변경해야합니다. printf ("Error : % s. \ n", $ stmt-> error);'execute()를 추가하십시오. mysql 에러가 있습니까? –

+0

나는 권장 된 변경을했고 PHP : 'echo json_encode (array ("resID"=> $ dID, "resClass"=> $ dClass))'에 이것을 추가했다. 그런 다음 JS 코드에 "output"을 추가했습니다. '$ .post ("classChange.php", {\t dID : this.id, dClass : "halfy"}, function (데이터) {console.log .resID); console.log (data.resClass); \t}, "json");'. 이제 내 코드가 작동합니다. 어떤 비트가 문제를 해결했는지는 모르지만, 고마워! – user6285791

관련 문제