代码之家  ›  专栏  ›  技术社区  ›  user350034

用jQuery从PHP获取变量值

  •  1
  • user350034  · 技术社区  · 16 年前

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

    例如,我有register.php和register.tpl(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 ...
    }
    

    寄存器.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>
    

    电子邮件 …其他输入。。。 $(“#用户名”).blur(函数() {

    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 回复  |  直到 14 年前
        1
  •  5
  •   Ben Everard    16 年前

    <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);
    

    应该是这样的:-)

        2
  •  0
  •   acm    16 年前

    要么你做一个 Jquery Ajax Request 它将请求一个php页面,该页面将返回您想要的任何内容,或者用php回显一个javascript变量

    <?php 
      echo '<script> var javascript_variable = "whatever"; </script>'; 
    ?>
    
        3
  •  0
  •   Michael Lumbroso    16 年前

    如果你这样做的话会有用的

    echo "1";
    

    然后

    if(result == "1") {
    

    如果它不起作用(但我已经检查了一个没有引号的代码,它不起作用,有,它是好的),请检查Firebug控制台的响应。

        4
  •  0
  •   bpeterson76    16 年前

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

    例如:

    警报($('35;').val());

    当然,不是所有的情况。如果必须调用一个不具有PHP访问该文件权限的变量(可能是.tpl文件,具体取决于您的设置),则可以使用上面详细介绍的设置隐藏输入。