0

我只是想从文本框中读取字段,通过 ajax 将值传递给 PHP,然后将数据存储在 mysql 表中。表已经设置好,可以使用了,我只需要插入值。

这是我的js文件

    var address = $("input#email").val(); 
    //If submission is valid 
    if(submitForm == "true"){
        $.ajax({  
            url: "bin/process.php",  
            type: "POST",  
            data: {email: address},   
            success: function(response) {  
            $('#message').html(response); 
            }
        });  
        return false; 
    }

然后我的PHP看起来像这样

    <?php

       function process($email){

        //Connect to the database  
        $con = mysql_connect('localhost', 'root', '') ; 
        if(!$con){ 
          retun mysql_error();  
        }

        //Insert Data into the Table
        $sql = 'INSERT INTO Users(email) VALUES ('$email')' ; 
        $query = mysql_query($sql, $con) 
        if(!$query){
          return mysql_error();
        }

        return "Thank you for your submission!"; 
       }

       echo process(trim($_POST['email']));
     ?>

现在我收到这个错误

Parse error: syntax error, unexpected T_STRING /opt/lampp/htdocs/mysite/bin/process.php on line 3

所以看来我没有正确传递地址值,但我不知道为什么。作为参考,我按照这篇文章的说明进行操作:Jquery ajax call from javascript to PHP

我不太明白最后一个回显行,但我尝试了多种方法,它们都给了我同样的错误。

提前致谢!

4

3 回答 3

3

你拼错了函数:funtion process($email){

它应该是function process($email){

任何体面的文本编辑器或 IDE 都会立即为您捕捉到这一点。

于 2013-05-01T13:07:59.703 回答
3

我在您的代码中发现了 3 个错误

  1. retun mysql_error(); // return spelling wrong
  2. $sql = 'INSERT INTO Users(email) VALUES ('$email')' ; // syntax error
  3. $query = mysql_query($sql, $con); // semicolon missing

更正的代码是...

<?php
       function process($email){

        //Connect to the database  
        $con = mysql_connect('localhost', 'root', '') ; 
        if(!$con){ 
          return mysql_error();  
        }

        //Insert Data into the Table
        $sql = "INSERT INTO Users(email) VALUES ('$email')" ; 
        $query = mysql_query($sql, $con);
        if(!$query){
          return mysql_error();
        }

        return "Thank you for your submission!"; 
       }

       echo process(trim($_POST['email']));
     ?>
于 2013-05-01T13:14:56.960 回答
1

将您的查询从单个 qoutes 更改为此

 $sql = "INSERT INTO Users(email) VALUES ('$email')" ; 

因为单引号不会解析变量。

于 2013-05-01T13:09:16.903 回答