【问题标题】:jQuery AJAX POST to allow form data sending without page redirect- how to then insert data into mysqljQuery AJAX POST 允许在没有页面重定向的情况下发送表单数据 - 然后如何将数据插入 mysql
【发布时间】:2011-11-08 20:09:48
【问题描述】:

我已经学习了三个教程,一个关于将表单数据提交到 php 文件,一个关于将数据写入 mysql 表,然后一个关于 jQuery AJAX 以在没有页面重定向的情况下完成所有这些操作。

顺便说一句,jQuery AJAX 教程就在这里,因为似乎这个网站上的很多人都问过如何在没有 POST 重定向的情况下发送表单:

POST a form without page redirect

在通过 AJAX 将数据获取到 php 文件方面,我已经正确设置了所有内容,但是 php mysql 语句不会将数据写入数据库。我已经使用 firebug 来检查数据是否到达 php,这就是我认为的。

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

顺便说一句,在 jQuery AJAX 教程中,他提到“除了发送电子邮件和发送成功消息之外,您还可以在这里做更高级的事情。例如,您可以将您的值发送到数据库,对其进行处理,然后将结果显示给用户。听起来他是在说您可以使用 POST 到 php 文件以外的东西来完成所有这些工作。我以为 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')"; 

?>

【问题讨论】:

    标签: php mysql forms jquery


    【解决方案1】:

    首先,确保您从帖子中转义数据:

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

    第二件事,你没有执行查询(或者这里缺少一些代码?)

    mysql_query($sqlinsert, $conn);
    

    【讨论】:

    • 对不起,我会尝试你的建议,我相信 youTube 上的那个人已经让这个 php 文件在没有更多代码的情况下工作了。
    • 是的,你完全正确,我错过了他教程中的查询执行。我很抱歉。它现在正在写入数据库,但我还没有实现你的第一点,但它仍在工作。这很重要吗?
    • 是的,每当您从用户输入中执行 SQL 查询时,您都应该转义数据中不需要的字符(这很关键)。阅读有关 mysql 注入的信息。另一件事是,如果此示例中的字符串包含单引号,则会导致您的查询不正确。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 2011-08-10
    • 2017-09-20
    • 2016-01-26
    • 1970-01-01
    • 2017-06-01
    相关资源
    最近更新 更多