-1

以下是在我的 html 文件的头部,在脚​​本标签中:

$(document).ready(function(){ 
                 $("#Submit").click(function(){
                     var name = $("#name").val();
                     $.ajax({
                         url : "function.php", 
                         type : "POST",
                         data : {"firstname":name},
                         success : function(n){
                            //more code here                         } 
                     });
                 });
 }

这是 HTML 表单:

<div class="myForm">
                <input name="name" id="name" value="name" onfocus="if (this.value == 'Name') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Name';}" type="text"  />
                <input type="button" value="Submit" id="Submit">
            </div>

这是我的 PHP,保存在一个名为 function.php 的文件中:

<?php
$con=mysqli_connect( "test", "", "", "test");
// Check connection
$name = $_POST['firstname'];
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

mysqli_query($con,"INSERT INTO customers (name) VALUES (" + $name + ")");

mysqli_close($con);
?>

该函数需要一段时间才能调用,并且我的数据库中没有保存任何内容。我是 JQuery/Ajax 的新手。我的调试选项是什么?问题可能是什么?

4

1 回答 1

2

试试这个代码。我已经编辑了您的代码并添加了 PDO,这是连接到数据库的新方法。这更安全并自动转义数据。

你的 php.ini 中有很多语法错误。像 php 中的字符串附加运算符.不是+.

<?php
$name = $_POST['firstname'];
try {
    // Prepare our connection string and execute it
    $con = new PDO("mysql:host=".HOST.";dbname=".DBNAME, USER, PASS);
} catch(PDOException $e) {  
    // Connection error jumps here
    echo $e->getMessage();  
}
// Define our query here
$query = $con->prepare("INSERT INTO customers (name) VALUES (:name)");
// Define our query data here. the name here maps to the :name in the query.
$data = array("name" => $name);
try {
    // Try to execute our query
    $query->execute($data);
} catch(PDOException $e) {
    // Insert error jumps here
    echo $e->getMessage(); 
}
?>

只需输入您的主机、数据库名称、用户并传入代码中提到的位置即可。

要在您的 firefox 和 html 页面上调试 php 代码Firebug,请通过右键单击页面并选择Inspect element with firebug. 打开Net面板,您可以看到请求正在进行。查看响应,您将在 php 页面上看到任何可能的错误。

祝你好运!

于 2013-05-31T22:55:22.960 回答