如何使用PHP和AJAX插入SQL?

时间:2016-04-12 06:17:32

标签: php mysql ajax

我看过这篇文章:Inserting into MySQL from PHP (jQuery/AJAX)但我没有让代码发挥作用。这是一个很老的帖子,所以它可能不再适用了吗?

我想在不更新页面的情况下将我的网站(PHP)中的帖子插入我的数据库(MySQL)。我在看AJAX(例如上面的链接),但我不明白如何让它工作。

我也看过这个视频:https://www.youtube.com/watch?v=lwo4fAqaVFM用于加载数据,这非常简单,所以我认为插入起来很简单,但它不是......

任何人都可以帮助我吗?

这个新的save.php确实有效。

的index.php

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script type="text/javascript" src="jquery.js"></script>
</head> 

<body>
    <form id="example" method="post">
        <input name="textbox">
        <input type="button" name="submitbuttonname" value="submit" onClick="$.post('save.php', $('form#example').serialize())">
    </form>
</body>

新的save.php

$db = new mysqli('localhost','root','','audf');
mysqli_set_charset($db, 'utf8') or die('Charset kunde inte ändras till UTF-8');

if($db->connect_errno){
    die('Sorry, we are having some problems.');
}
$firstName = $_POST["firstName"];

$db->query("INSERT INTO test_db (first_name) VALUES ('".$firstName."')");

旧版save.php

$db = new mysqli('localhost','root','','audf');
mysqli_set_charset($db, 'utf8') or die('Charset kunde inte ändras till UTF-8');

if($db->connect_errno){
    die('Sorry, we are having some problems.');
}

if($_POST["submitbuttonname"]) {
    $q = $db->prepare("INSERT INTO test_db (first_name) VALUES (?)");
    $q->execute(array($_POST["textbox"]));
}

3 个答案:

答案 0 :(得分:1)

您的表单将数据发送为$_GET;
method="POST"添加到您的<form>元素。

编辑:哦。好的,我没有完全阅读你的代码:

您的表单可能会在触发$ .post请求之前发送 尝试将输入类型从“提交”更改为“按钮”。

问候;)

答案 1 :(得分:1)

为了更清洁的代码,我做了一些修改。

<强> HTML

<form id="example" method="post">
    <input name="textbox">
    <input type="button" name="submitbuttonname" value="submit">
</form>

ajax使用POST方法调用save.php

$('#example').submit(function(e){
e.preventDefault();

var frmdata = $('#example').serializeArray();

$.ajax({
    url: 'save.php',
    type: 'POST',
    data : frmdata,
    dataType: 'json',
    success: function(data){
        alert("Saved!");
    },
    error: function(err) {
        console.log(err.responseText);
    }
});
});

save.php - 缺少

的绑定参数
if($_POST["textbox"]) {
$textb = $_POST['textbox'];
$q = $db->prepare("INSERT INTO test_db (first_name) VALUES (?)");
$q->bind_param("s",$fname);
$fname = $textb;
$q->execute();

if($q){
 $array = array('data'=> $textb);
  echo json_encode($array);
}
}

答案 2 :(得分:0)

该链接一直有效。某些东西可能无法使用您的代码。您可以发布您尝试过的片段,以便我们找到遗漏的内容。快乐的编码!