我遵循三个教程,一个是将表单数据提交给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')";
>
对不起,我会尝试你有什么建议,我相信在YouTube上的家伙有这个PHP文件而无需任何代码工作。 – MGB
是的,你是绝对正确的,我错过了他的教程中的查询执行。我很抱歉。它现在正在写入数据库,但我没有实现你的第一点,但它仍然工作。这很重要吗? – MGB
是的,每当你从用户输入执行一个SQL查询时,你应该转义不需要的字符数据(这是至关重要的)。阅读关于mysql注入。另一件事是,如果在这个例子中字符串包含单引号,它会恶化你的查询。 – galchen