这次我有一个问题是得到一个php文件的值,其目标是进行查询(该部分已完成),验证查询是否无效,返回false或其他为真。 / p>
将该文件调用到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是我验证的地方,如果查询失败,这意味着该元素不存在,则返回$ confirmmacion值为false,否则$ confirmmacion = true表示元素已存在并显示警告消息在另一页面上的脚本中。
之前我测试了其他验证,例如查询和单选按钮的if / else验证(首先验证)并且它有效,所以,问题出在我的var validar中,也许我做错了当我得到来自我的php文件的值。
一如既往,感谢您的时间和关注,欢迎所有答案。
美好的一天。
答案 0 :(得分: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);
}
});
}