使用jQuery从PHP获取变量值

时间:2010-06-23 14:54:38

标签: php jquery

那么如何从jqery的php文件中获取变量值? jquery代码在其他文件(tpl)

例如我有register.php和register.tpl(register.php的模板文件)

register.php

 ...some includes here...



if(isset($_POST['submit'])) {
    $username = mysql_real_escape_string(trim($_POST['username']));
    $email = mysql_real_escape_string(trim($_POST['email']));
    $check = $mysql->query("SELECT username FROM ".TBL_USERS." WHERE username = '".$username."' OR email = '".$email."'");
$rows_check = mysql_num_rows($check);
if($rows_check > 0) {
    echo 1;
} else {
    $password = mysql_real_escape_string($_POST['password']);
        $salt = generate_salt($email);
        $hash = hash_password($password, $salt);
        $q = $mysql->query("INSERT INTO ".TBL_USERS." (username, password, email, salt) VALUES ('".$username."', '".$hash."', '".$email."', '".$salt."')");
        if($q) {
            header("Location: index.php");
        } else {
            die(mysql_error());
        }   
    }
} else {
.. calling parse template function ...
}

register.tpl

 ..jquery library included..
    <form id="register" action="register.php" method="post">
       <tr>
       <td>Username</td>
       <td><input type="text" id="username" name="username" class="register" style="width: 200px;" />
    </td>

     电子邮件                 ......其他投入......                                     $( “#用户名”)。模糊(函数()     {

var email_v = $("#email").val();
 $("#msgbox").removeClass().addClass('messagebox').text('Checking...').fadeIn("slow");
 $.post("register.php",{ username:$(this).val(), email: email_v, submit: true } ,function(data)
 {
  if(data=="1") 
  {
   $("#msgbox").fadeTo(200,0.1,function()
   {

    $(this).html('This User name Already exists').addClass('messageboxerror').fadeTo(900,1);
   });
  }
  else
  {
   $("#msgbox").fadeTo(200,0.1,function() 
   {
    $(this).html('Username available to register').addClass('messageboxok').fadeTo(900,1);
   });
  }
 });
});
</script>

当我将整个register.php更改为测试目的时 要么 该脚本工作...但是在原始版本中,它始终显示用户名可用...

4 个答案:

答案 0 :(得分:5)

最好的办法是将PHP变量输出为隐藏字段或JavaScript变量:

<input type="hidden" id="my_var" name="my_var" value="<?php echo($my_var); ?>" />

// access it like this:    
alert($('#my_var').val());

<script type="text/javascript">
    var my_var = <?php echo($my_var); ?>;
</script>

// access it like this
alert(my_var);

应该这样做: - )

答案 1 :(得分:0)

你要么Jquery Ajax Request要求一个php页面,它会返回你想要的东西,或者用php回显一个javascript变量

<?php 
  echo '<script> var javascript_variable = "whatever"; </script>'; 
?>

答案 2 :(得分:0)

如果你这样做,它将起作用

echo "1";

然后

if(result == "1") {

如果没有(但我已经检查了我的代码而没有引号,它没有用,有了,没关系),检查来自Firebug控制台的响应。

答案 3 :(得分:0)

在我公司的应用程序需要在动态元素上调用Jquery并且我们在php文件中调用Jquery的情况下,我们将直接在Jquery调用中调用php。

例如:

警报($( '#')VAL());

当然不适用于所有情况。如果你必须调用一个你没有PHP文件访问权限的变量(可能是一个.tpl文件,具体取决于你的设置),你可能会设置一个隐藏的输入,如上所述。