简体   繁体   English

将 php 值与 javascript 变量进行比较?

[英]Comparing php value with javascript variable?

I am working on php and javascript project.我正在研究 php 和 javascript 项目。 I just want to compare echo return value of php with javascript variable.我只想将 php 的回声返回值与 javascript 变量进行比较。

php backend code which returns 'no' using echo php 使用回显返回“否”的后端代码

 if($connection){
    $sql ="SELECT secondname FROM account WHERE email = '$email' && password = '$password'";
    $searchquery = mysqli_query($connection, $sql);
    if(!(mysqli_num_rows($searchquery) == 0)) {
        $row = mysqli_fetch_array($searchquery);
        $secondname = $row['secondname'];
        echo $secondname ;
    } else {
       echo 'no';

    }

Now comparing with javascript variable现在与 javascript 变量进行比较

$.post("signnin.php",{
               email: email,
               password: password,
           },
        function(data, status){
        if(data == 'no'){
          console.log('same');

        }else{
          console.log('not same');

        }
        });

it give same result if value are same or not.如果值相同或不同,它会给出相同的结果。 i also JSON.stringify but it still not working我也 JSON.stringify 但它仍然无法正常工作

The output from the URL probably includes white space. URL 中的 output 可能包含空格。

JSON is a good way to normalize that, but you need to apply it at the PHP end, not the JavaScript end. JSON 是对其进行规范化的好方法,但您需要在 PHP 端应用它,而不是在 JavaScript 端应用它。

    $secondname = $row['secondname'];
    header("Content-Type: application/json");
    echo json_encode([ "secondname" => $secondname ]);
 } else {
    header("Content-Type: application/json");
    echo json_encode([ "failure" => "Login failed" ]);
 }

and then:接着:

    $.post(
        "signnin.php",
        { email, password },
        function(data, status){
            if(data.failure){
                console.log('same');
            } else {
                console.log('not same');
            }
        }
    );

You are probably sending whitespaces in your PHP script.您可能在 PHP 脚本中发送空格。 There are 2 ways to solve this -有两种方法可以解决这个问题 -

  1. Ensure that you put the starting php tag from the very first line and don't put the ending php tag (?>).确保从第一行开始放置 php 标记,并且不要放置结束 php 标记 (?>)。

  2. Instead of comparing texts, compare numbers.与其比较文本,不如比较数字。 In php script echo 1 and in js compare data==1.在 php 脚本中 echo 1 和 js 中比较数据==1。 This way whitespaces are automatically ignored.这样空格会被自动忽略。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM