2011-09-02 16 views
1

我遵循三个教程,一个是将表单数据提交给php文件,另一个是将数据写入mysql表,然后一个关于jQuery AJAX来完成所有这些,而无需页面重定向。jQuery AJAX POST允许无页面重定向的表单数据发送 - 如何将数据插入到mysql

jQuery的AJAX教程在这里,顺便说一下,因为它似乎在这个网站有很多人都问如何发送形式,而不POST重定向:

POST a form without page redirect

我已经把一切都成立正确的方法是通过AJAX获取数据到php文件,但php mysql语句不会将数据写入数据库。我用firebug来检查数据是否到达了php,而这正是我的想法。

我确定这个问题不是数据库连接问题之一,我认为这是由于数据的格式被传递给了php文件。混合和匹配教程对我来说很困难。我是否需要解压我在jQuery函数中创建的字符串数据?

另外,在jQuery AJAX教程中,他提到“除了发送电子邮件和发送成功消息之外,还有更高级的东西可以在这里完成。例如,您可以将您的值发送到数据库,处理它们,然后将结果显示回用户。这听起来像他在说,你可以使用除POST之外的其他内容来完成所有这些。我认为php文件的全部要点是做数据库存储?

谢谢你们的时间。

jQuery的AJAX发送数据:

jQuery(function() { 
    jQuery(".button1").click(function() { 

    var txtRow1 = jQuery('#txtRow1').val(); 
    var tickerRow1 = jQuery('#tickerRow1').val(); 

    var dataString = 'txtRow1='+ txtRow1 + '&tickerRow1=' + tickerRow1; 
    //alert (dataString);return false; 
    jQuery.ajax({ 
    type: "POST", 
    url: "form_action.php", 
    data: dataString 
    }); 
      return false; 
     }); 
}); 

而且form_action.php:

<?php 

$dbhost = 'localhost'; 
$dbuser = 'user'; 
$dbpass = 'pass'; 
$dbname = 'dbname'; 

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql'); 
mysql_select_db($dbname); 

$txtRow1 = $_POST['txtRow1']; 
$tickerRow1 = $_POST['tickerRow1']; 

$sqlinsert = "INSERT INTO stock_port (name, ticker) VALUES ('$txtRow1', '$tickerRow1')"; 

>

回答

1

首先,确保你从后逃跑的数据:

$sqlinsert = "INSERT INTO stock_port (name, ticker) VALUES ('".mysql_real_escape_string($txtRow1)."', '".mysql_real_escape_string($tickerRow1)."')"; 

秒的事情,你是不是在执行查询(或者是一些代码在这里失踪?)

mysql_query($sqlinsert, $conn); 
+0

对不起,我会尝试你有什么建议,我相信在YouTube上的家伙有这个PHP文件而无需任何代码工作。 – MGB

+0

是的,你是绝对正确的,我错过了他的教程中的查询执行。我很抱歉。它现在正在写入数据库,但我没有实现你的第一点,但它仍然工作。这很重要吗? – MGB

+0

是的,每当你从用户输入执行一个SQL查询时,你应该转义不需要的字符数据(这是至关重要的)。阅读关于mysql注入。另一件事是,如果在这个例子中字符串包含单引号,它会恶化你的查询。 – galchen

相关问题