那么如何从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更改为测试目的时 要么 该脚本工作...但是在原始版本中,它始终显示用户名可用...
答案 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文件,具体取决于你的设置),你可能会设置一个隐藏的输入,如上所述。