0

起動していないように見える次の AJAX スクリプトがあります。何が問題なのか誰か教えてください。

フォーム.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>

プロセス.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));
?>
4

1 に答える 1

1

私は定位置プレースホルダー(私は常に名前付きプレースホルダーを使用していました)にあまり精通していませんが、あなたがする必要があると思います

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

2回使用されるので$id。MySQLは、最終的なプレースホルダーに何が必要かを認識していません。プレースホルダーの数が一致しないという何らかのエラーが発生する可能性があります。

これをデータベースハンドルに追加してみてください。

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

process.php次に、の出力をメインページにエコーバックします。

于 2013-02-07T02:54:48.617 に答える