2013-02-07 65 views
0

我有以下AJAX腳本似乎沒有被解僱。任何人都可以告訴我它有什麼問題嗎?jQuery AJAX腳本沒有觸發

form.php的

<script type = "text/javascript"> $(document).ready(function() { 
    $('#updatebtn1').click(function() { 
     $('#result1').show('slow').delay(4000).hide('slow') 
     $.post('process.php', $('#updateform1').serialize()) 
    }); 
}); 
</script> 

<form id="updateform1"> 
    <div class="tbl_header">Timetable Support Website</div>Due Date: 
    <script> 
     $(function() { 
      $("#datepicker1").datepicker({ 
       minDate: -0, 
       dateFormat: 'dd/mm/yy', 
       maxDate: new Date(2013, 1, 22) 
      }) 
     }); 
    </script> 
    <input type="text" id="datepicker1" style="width: 100px; 
      height: 10px;" value="18/02/2013" name="duedate" />&nbsp; Status: 
    <select style="width: 125px;" name="status"> 
     <option>Pending</option> 
     <option>----</option> 
     <option>Pending</option> 
     <option>In Progress</option> 
     <option>Complete</option> 
    </select>&nbsp; 
    <input type="hidden" name="id" value="1"> 
    <input type="button" id="updatebtn1" value="Update" style="width: 100px;" 
    class="pmbtn" /> 
</form> 
<div id="result1" style="display: none; color: red">Update successful!</div> 

process.php

<?php 
$duedate = $_POST["duedate"]; 
$status = $_POST["status"]; 
$id = $_POST["id"]; 

$sql = "UPDATE pm_schedule SET duedate=?, status=?, id=? WHERE id=?"; 
$q = $pdo->prepare($sql); 
$q->execute(array($duedate,$status,$id)); 
?> 
+0

不要在PDO中使用'mysql_real_escape_string' – Mike

+1

你如何確定「不解僱」? – Mike

+0

@Mike數據庫中的值沒有被更新 – methuselah

回答

1

我不是太熟悉的位置佔位符(我總是叫佔位符),但我假設你需要做

$q->execute(array($duedate,$status,$id,$id)); 

因爲$id被使用了兩次。 MySQL不知道你想爲最終的佔位者做什麼。這可能會導致持有人數量不匹配的某種錯誤。

嘗試添加以下內容到數據庫句柄:

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

,然後呼應的process.php輸出回到主網頁。