2014-02-26 116 views
1

很新的php/mysql和jquery,我無法讓我的表單數據上傳到我的MySQL數據庫。我嘗試了幾種不同的方法並完成了我的研究,但是我在網上找到的所有建議都不適合我,這就是我在這裏發佈的原因。因此,這裏是我最近失敗的方法:獲取我的表單數據發佈到mysql數據庫

<head> 

... 

<script type="text/javascript"> 
$(document).ready(function() { 
    // Announcement form AJAX submit 
    $('#announcementForm').submit(function() { 
     $.ajax({ 
      url: 'ajax.php', 
      type: 'POST', 
      dataType: 'json', 
      data: $(this).serialize(), 
       success: function(data) { 
       if (data.error) { 
        $('#error').css('display', 'block'); 
       } else { 
        $('#note').show(); 
        $('#error').hide(); 
        $('#fields').hide(); 
       } 
      } 
     }); 
     return false; 
    }); 
}); 
</script> 

</head> 
<body> 

... 

<form class="dl_form" id="announcementForm" method="post"> 
      <dl> 
       <dt>Announcement</dt> 
       <dd><textarea id="Announcement" sytle="width: 300px; height: 150px;" name="Announcement"></textarea></dd> 
      </dl> 
      <dl> 
       <dt>Announcement Type:</dt> 
       <dd><input type="radio" name="Type" value="schedule">Scheduling</input></dd> 
       <dd><input type="radio" name="Type" value="general">General</input></dd> 
      </dl> 
      <dl> 
       <dt></dt> 
       <dd><input type="submit" value="submit" /></dd> 
      </dl> 
     </form> 

     <div id="note"> 
      <p>Announcement posted successfully!"</p> 
     </div> 
     <div id="error">You haven't completed all of the required fields</div> 

然後在我的ajax.php文件我有(部分線路已被替換爲「######」爲:

在我的索引文件

安全原因):

<?php 
//database credentials 
$server = '######'; 
$username = '######'; 
$password = '######'; 
$database = '######'; 
$connect = mysql_connect($server, $username, $password) or die(mysql_error.'error connecting to db'); 

//select database 
mysql_select_db($database, $connect) or die(mysql_error.'error selecting db'); 

//$typeValue = $('input:radio[name=Type]:checked').val()); 

if (!empty($_POST)){ 
    $Announcement = $_POST['Announcement']; 
    $Type   = $_POST['Type']; 

    if (!empty($Announcement) && !empty($Type)) 
    { 
     //insert data into db 
     mysql_query("INSERT into announcements (AnnouncementID, Type, Announcement) 
     VALUES ('', '".$Type."', '".$Announcement."')") or die(mysql_error()); 
    }else { 
     echo json_encode(array(
      'error' => true, 
      'msg' => "You haven't completed all required fields!" 
     )); 
     exit; 
    } 
} 

?> 

你們可以提供任何幫助將非常感激。

感謝

UPDATE響應傑伊·布蘭查德:

我只是跑在我的瀏覽器的控制檯。我得到的唯一錯誤是:

SCRIPT1004: Expected ';' 

參考我的JS的第一行:

$function() { 
... 

更新2:

剛剛更新我的代碼,以反映我最近的變化...在我至少可以觸發提交點擊的情況下,字段將被清空,表明至少發生了一些事情。然而,隨着我的新一輪的變化,甚至沒有觸發,所以我仍然相當卡住

+2

請勿使用mysql_ *。它被棄用和不安全,並將從未來版本的PHP中刪除。此外,您可以廣泛開放SQL注入。您需要使用PDO或MySQLi並使用預準備語句。 –

+0

你沒有提到什麼問題? –

+0

此外,你應該從您的查詢中刪除公告ID如果在數據庫中它是自動增量,因爲數據庫會警告你列錯誤的整數值公告ID –

回答

4

在你的PHP中,你的echo聲明不是jason_encode而是它的json_encode

此外

你也應該刪除您查詢AnnouncementID如果數據庫是自動遞增,因爲DB會提醒您爲AnnouncementID列不正確的整數值。

編輯:在你的PHP部分聲明

mysql_query("INSERT into announcements (AnnouncementID, Type, Announcement) 
      VALUES ('', '".$Type."', '".$Announcement"')") or die(mysql_error()); 

'".$Announcement後忘記一個連接符.這應該是

mysql_query("INSERT into announcements (AnnouncementID, Type, Announcement) 
      VALUES ('', '".$Type."', '".$Announcement."')") or die(mysql_error()); 

,並在您的jQuery,而不是

$function() { 

使用

$(document).ready(function(){ 
+0

嘿pronox,謝謝你的幫助。這兩個都是我的疏忽,我已經解決了,但是我的問題沒有解決。你是否看到任何其他問題。就像我在剛剛發佈的更新中所說的那樣,我的腳本正在返回一個錯誤,但我沒有看到我錯過了哪一個'; ' – wrigley06

+0

讓我重新檢查 –

+0

@ wrigley06檢查我的編輯你在查詢中缺少'.' –

相關問題