2016-07-05 27 views
0

我想更新一個行,我想要一個複選框值更新MySQL中的表字段。我不想使用窗體,因爲我不希望頁面刷新。我粘貼了下面的代碼,這是連續第三天,我被困在這裏。Mysql查詢不更新數據庫與.open請求同時在javascript中使用

<script type="text/javascript"> 
     function chkit(uid, chk, sid) { 
      chk = (chk==true ? "1" : "0"); 
      var url = "edit_sms_process.php?userid="+uid+"&chkYesNo="+chk+"&sid="+sid+""; 
      if(window.XMLHttpRequest) { 
       req = new XMLHttpRequest(); 
      } else if(window.ActiveXObject) { 
       req = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      // Use get instead of post. 
      req.open("GET", url, true); 

      req.onreadystatechange = function() { 
       if (req.readyState === 4) { 
        if (req.status === 200) { 
         console.log(req.responseText); 

        } else { 
         console.log("Error", req.statusText); 
        } 
       } 
      }; 

      req.send(null); 
     } 
    </script> 

我的PHP頁面:

<div class="form-group"> 

             <label class="control-label col-md-3 col-sm-3 col-xs-12" 
               for="chk_<?php echo $row2['teacher_id']; ?>">SMS Send<span 
               class="required">*</span> 
             </label> 

             <div class="slideThree"> 
              <input type="checkbox" 
                name="chk" 
                id="chk_<?php echo $row2['teacher_id']; ?>" 
                value="chk" 
              onclick="chkit(<?php echo $row2['teacher_id']; ?>, this.checked, <?php echo $row2['teacher_schoolref_id'] ?>);" 
               <?php echo ($row2['sms_send'] == 1) ? 'checked="checked"' : ''; ?> /> 
              <label for="chk_<?php echo $row2['teacher_id']; ?>"></label> 

Ç

現在鉻控制檯顯示此

edit_sms.php短信= 61:151 XHR加載完成:GET 「http://localhost/cloud_school/cloud_school/dashboard_files/communication/edit_sms_process.php?userid=61&chkYesNo=0&sid=10」.chkit @ edit_sms .PHP短信= 61:??151onclick @ edit_sms.php短信= 61:383 edit_sms.php短信= 61:143 10success

// Get the variables. 
$userid = $_GET['userid']; 
$chkYesNo = $_GET['chkYesNo']; 
$schoolcid= $_GET['sid']; 

$sql = "UPDATE teachers SET sms_send = $chkYesNo WHERE teacher_id = $userid AND  teacher_schoolref_code = $schoolcid"; 
$result = mysqli_query($conn, $sql) or die(mysqli_error($conn)); 

if($result==1) { 
echo $result; 
echo $chkYesNo; 
echo "success"; 
} 

Eventhough控制檯顯示爲成功,該數據庫是不會得到更新。爲了簡單起見,我在php頁面中包含了db連接字符串,並沒有添加。

任何幫助將非常感謝!

+0

顯示更新代碼在這裏 – dod29

+0

 // Get the variables. $userid = $_GET['userid']; $chkYesNo = $_GET['chkYesNo']; $schoolcid= $_GET['sid']; $sql = "UPDATE teachers SET sms_send = $chkYesNo WHERE teacher_id = $userid AND teacher_schoolref_code = $schoolcid"; $result = mysqli_query($conn, $sql) or die(mysqli_error($conn)); if($result==1) { echo $result; echo $chkYesNo; echo "success"; }

+0

包裝這個代碼用'isset($ _ GET)&&!空($ _ GET)'做'的print_r($ _ GET)' – dod29

回答

0

好的,在dod29的幫助下,我能夠解決這個問題。我在第二個實例中使用了一個錯誤的列名,這個名字改變了這個問題。謝謝dod29