修剪不适合ajax发送? $ _ POST

时间:2013-09-13 02:36:29

标签: php ajax

$name = trim(&$_POST['name']);

为什么修剪这种方式不起作用?我正在关注一个教程,它放了&在$_POST['name']之前签名我不知道那是什么..我在$ name = $_POST['name'];

时收到错误

这是以下代码行

if($name && $email && $password && $cpassword){
        mysql_connect("127.0.0.1","root","") or die("Fail to connect to database");
        mysql_select_db("reglog");

        mysql_query("INSERT INTO users(username,email,password) VALUES('$name','$email','$cpassword')");
        echo 1;
}else{
    echo "not allowed"; 
}

使用$name = trim(&$_POST['name']);

我没有得到1值返回我的ajax数据

这是我的js

$("#send").click(function(){
    var all = $("form").serialize();
    if(validateName() & validateEmail() & validatePass1() & validatePass2() == true){
        $.ajax({
            type: "post",
            url: "insert.php",
            data: all,
            success: function(data){
                if(data==1){
                    alert("success, you have registered");
                }else{
                    alert('Validate your form with correct informations to proceed!');
                }
            }
        });
    }
});

5 个答案:

答案 0 :(得分:0)

当你使用$ name = trim($ _ POST ['name'])时,你得到了什么错误;

语法很完美。

答案 1 :(得分:0)

最好先尝试使用isset()来避免错误:

$name = isset($_POST['name']) ? trim($_POST['name']) : 'Some other value';

就我个人而言,当你收到错误时,我认为这有点蹩脚,特别是如果设置了$_POST['name'] 。但是无所谓。 ;)

答案 2 :(得分:0)

PHP中的&用于通过引用传递给函数的参数,以便传递的值在函数外部发生变化,如:

$whatever = 0;
function referWhat(&$arg){
  $arg = 10;
}
referWhat($whatever);

现在$whatever === 10

答案 3 :(得分:0)

尝试使用empty()

检查变量集
  

$ name = empty($ _ POST ['name'])? 'some value':trim(& $ _ POST ['name']);

答案 4 :(得分:0)

当您使用$("form").serialize()时,您可以使用以下格式创建字符串:

a=1&b=2&c=3&d=4&e=5&name=some_name

因此,要在PHP方面获得name,您需要执行以下操作:

$data = array();
parse_str($_POST, $data)
//do
print_r($data);// to see how you get the `POST` data

或使用$('form').serializeArray(),例如

var all = $("form").serializeArray();

和PHP

$name = $_POST['name'];