清空数据发送到MySQL,而不是输入值

时间:2016-05-14 12:50:52

标签: php jquery mysql ajax

我有简单的php / ajax / mysql聊天。但不幸的是,当我将表单发送到数据库时,php将空字符串发送给MySQL,我该如何解决?

这里是page.php代码,带脚本:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$(document).ready(function(){

     $("#messages").load('ajaxLoad.php');

  $("#userArea").submit(function(){
    $.post('ajaxPost.php', $('#userArea').serialize(), function(data){
        $("#messages").append('<div>'+data+'</div>');

    });
    return false;
  });
});
</script>
</head>
<body>
<div class="container">
  <div id="messages"></div>
    <form method="post" action="ajaxPost.php" id="userArea" style="margin: 0 auto; font-size: 23px; text-align: center;">
      <h1>Chat</h1>
      <input type="text" name="message" />
      <input type="submit" value="send!" />
    </form>    
</div>
<?php include_once('ajaxLoad.php'); ?>
<?php include_once('ajaxPost.php'); ?>

和ajaxPost.php:

<?php 
include_once('page.php');
include('config.php');

$message = $_POST['message'];

$db->Query("INSERT INTO messages(message1) VALUES ('$message')");

echo $message;
?>

如果您运行:alert($('#userArea').serialize())它会显示您的消息。

1 个答案:

答案 0 :(得分:0)

摆脱这些界限:

<?php include_once('ajaxLoad.php'); ?>
<?php include_once('ajaxPost.php'); ?>

这些脚本只能在AJAX中使用,在显示原始表单时不应该执行它们。当您使用include()执行$_POST时,ajaxLoad.php中没有任何内容,因此您插入一条空信息。

您还没有显示$("#messages").load()中的内容,但是从include使用它的方式来看,我怀疑它应该与ajaxPost.php一起运行。

我非常确定$.post()在使用include_once()进行调用时正常工作,而空行来自include_once('page.php');

我认为它不应该阻止插入,但你也不应该

ajaxPost.php
public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); } public void DrawStuff() { this.Paint += new PaintEventHandler(panel1_Paint); this.Refresh(); } private void panel1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; Graphics[,] g1 = new Graphics[140, 140]; int[,] graph = new int[140, 140]; int i, j; for (i = 0; i < 140; i++) for (j = 0; j < 140; j++) { graph[i, 8] = 1; graph[i, 10] = 1; } Pen p = new Pen(Color.Blue); SolidBrush mySolidColorBrush = new SolidBrush(Color.Blue); Graphics a; a = this.CreateGraphics(); for (i = 1; i <= 10; i++) for (j = 1; j <= 14; j++) { g.DrawEllipse(p, 80 * i, 80 * j, 10, 10); g.FillEllipse(mySolidColorBrush, 80 * i, 80 * j, 20, 20); a.DrawLine(Pens.Blue, 80 * i, 80 * j, 80 * (i - 1), 80 * (j - 1)); } } } 中的