2014-02-26 90 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检查我的编辑你在查询中缺少'.' –

相关问题