将字符串从ajax传递给PHP

时间:2013-05-01 13:07:25

标签: javascript php jquery ajax

我只是尝试从文本框中读取字段,通过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

我不太了解最后一个回声线,但我尝试了多种方法,它们都给了我同样的错误。

提前致谢!

3 个答案:

答案 0 :(得分:3)

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

应为function process($email){

任何体面的文本编辑器或IDE都会立即为您捕获。

答案 1 :(得分: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
  4. 更正后的代码是......

    <?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']));
         ?>
    

答案 2 :(得分:1)

将查询从单引号更改为此

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

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