在另一个页面问题中从 PHP 页面获取 Javascript 的值

Posted

技术标签:

【中文标题】在另一个页面问题中从 PHP 页面获取 Javascript 的值【英文标题】:Get a value from a PHP Page to a Javascript in Another Page Issue 【发布时间】:2017-03-02 15:19:09 【问题描述】:

这次我在获取目标是进行查询(该部分已完成)的 php 文件的值时遇到问题,验证查询是否不起作用,返回 false 或 true。

该文件被调用到 javascript var 中以获取 true/false 值,但它不起作用。我知道我失败了,因为我打印了布尔值并且警报显示“[object][object]”。

这是我的 html 文件

<form class="form-inline" id="formpqrs1" onSubmit="Validate()" method="get">
                       <label> <h4><b>Information</b></h4></label>
                       <br> 
                       <select id="s2" name="s2" style="min-width:25%"></select>
                       <br><br>   
            <label><h4><b>Insert Element Name</b></h4></label>
            <br>
            <input name="Nombre" id="Lugarpqrs" type="text" class="form-control" placeholder="NOMBRE" required>
            <br> <br>

           <div id="motivos"> 
             <label> <h4><b>Choose Type:</b></h4></label>
             <br>
             <div class=radio-inline>
              <label>
                <input type="radio" name="tipomotivo" id="tipomotivo" value="1"><h5>Type 1</h5>
              </label>
             </div>
             <div class=radio-inline>
              <label>
                <input type="radio" name="tipomotivo" id="tipomotivo" value="2"><h5>Type 2</h5>
              </label>
             </div>
             <div class=radio-inline>
              <label>
                <input type="radio" name="tipomotivo" id="tipomotivo" value="3"><h5>Type 3</h5>
              </label>
             </div>
             <div class=radio-inline>
              <label>
                <input type="radio" name="tipomotivo" id="tipomotivo" value="4"><h5>Type 4</h5>
              </label>
             </div>
             <br><br>
          </div>

                <button type="submit" class="btn btn-primary">Submit</button>
              </form>    

这是我的 Javascript 文件,我在其中获取 php 文件的值,我通过单选按钮进行验证,然后我创建一个 var 来获取完成查询的 php 文件的值。

function Validate()

if($("#opcion:checked").val() === "1")
     var validar = false;
     var validar = $.get("validaciones/Validar_Ubicacion.php?lugar="+$("#Lugarpqrs").val()+"");

    if(!validar)
        $.get("php/Ingresar_tipo.php?lugar="+$("#Lugarpqrs").val()+"");
        alert("Success" + validar);
    

    else
        alert("Element Already Exist in DB" + validar); 
    

这是我的 php 文件

<?php 
$lugar=$_GET["lugar"];

$conexion = mysqli_connect($server, $user, $pass,$bd) 
or die("ERROR");

$confirmacion = false;

$sql = "SELECT *  FROM `lugar` WHERE  `nombre` = '".$lugar."'";
mysqli_set_charset($conexion, "utf8");

if(!$result = mysqli_query($conexion, $sql)) die();

$close = mysqli_close($conexion) 
or die("ERROR");

if(!$sql)
    echo $confirmacion;


else
    $confirmacion = true;
    echo $confirmacion;

?>

最后一部分 if/else 是我验证查询是否失败,这意味着元素不存在,然后返回 $confirmacion 值为 false 或 $confirmacion = true ,这意味着元素已经存在并在另一个页面上的脚本。

以前我测试了其他验证,例如单选按钮的查询和 if/else 验证(首先是 if 验证)并且它有效,所以,问题出在我的 var validar 中,也许我在获取值时做错了来自我的 php 文件。

一如既往,感谢您的时间和关注,欢迎所有答案。

美好的一天。

【问题讨论】:

将 html 添加到您的问题中 已添加,但我在没有验证的情况下尝试过,效果很好,问题是当我获取 php 文件的值时,我测试显示 var validar on alert 的值,它显示值“[object][object]”而不是 true/false。 header('Content-Type: application/json; charset=UTF-8');echo json_encode($confirmacion); 为 javascript 从 php 返回 我明白了,很有趣,我要试试。谢谢! 【参考方案1】:

您需要在 jquery 的 .get 函数中更新您的逻辑(因为它是异步的。

更新您的 PHP 文件以输出字符串“true”和“false”(最佳做法是使用 JSON 格式和标头)- 这可能对您有用。

我为你更新了你的 Javascript 文件:

function Validate()

if($("#opcion:checked").val() === "1")
     var validar = false;
     $.get("validaciones/Validar_Ubicacion.php?lugar="+$("#Lugarpqrs").val()+"",

    function(data)

    if(data=="true")
        $.get("php/Ingresar_tipo.php?lugar="+$("#Lugarpqrs").val()+"");
        alert("Success" + validar);
    

    else
        alert("Element Already Exist in DB" + validar); 
        

    );


【讨论】:

哦,我明白了,JSON 格式怎么样?或一个例子,看看它是怎么回事?谢谢你的回答,真的很有用:) 在 ` *** function(data) *** , json **** ` 之后添加 "json" 并且响应 PHP 脚本应该返回 header('Content-Type: application/json; charset=UTF-8');echo json_encode($booleanvalue); 我测试了这个解决方案,它确实有效,非常感谢:)

以上是关于在另一个页面问题中从 PHP 页面获取 Javascript 的值的主要内容,如果未能解决你的问题,请参考以下文章

php 在wordpress中获取一个php文件,以便在另一个页面中显示

在另一个页面上获取电子邮件 ID

如何使用jQuery在另一个页面上获取cookie值?

在会话中存储错误消息并显示在另一个页面上

需要在另一个页面中使用变量[重复]

在 PHP 中从数据库中检索数据并在同一页面上的 JQuery 中显示它们