我的PHP生成表单在一秒钟后从HTML页面消失

时间:2018-05-10 16:18:11

标签: javascript php html

我正在编制一份娱乐活动调查表。用户需要输入一个位置,然后在MYSQL数据库中搜索该位置,以确保输入的名称与位置的标准名称相匹配。结果将以选择的形式显示,以允许用户选择特定的位置。

查询似乎正常工作。我已经通过警报窗口验证了返回字符串。但是,表格会短暂显示然后消失。我已经尝试将innerHTML字符串写入标记并直接写入表单。我发现的有关此主题的其他帖子表明表单标记未正确关闭。这似乎不是我的问题。

当我使用硬编码位置从测试页面运行php脚本,而页面上没有其他元素时,它运行正常。

我的js脚本:

<script> function getLoc(){

    var dataRequest;

    try {        
        // Opera 8.0+, Firefox, Safari
        dataRequest = new XMLHttpRequest();
        } catch (e) {

            // Internet Explorer Browsers
            try {
                dataRequest = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {

                try {
                    dataRequest = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e) {

                    // Something went wrong
                    alert("Your browser needs to be updated to run this 
                    application!");
                    return false;
                    }
        }
    }       

    dataRequest.onreadystatechange = function() {
        if(dataRequest.readyState == 4) {
            if (dataRequest.status==200 || 
                window.location.href.indexOf("http")==-1){
                    document.getElementById("locDropDown").innerHTML = 
                dataRequest.responseText;
            }
            else{
                alert("An error has occured making the request");
            }
        }
    }  
var queryString = "";
queryString = 
  encodeURIComponent(document.getElementById('locStr').value.toUpperCase()); 

dataRequest.open("POST", "retrieveLoc.php", true);
dataRequest.setRequestHeader("Content-type", "application/x-www-form- 
    urlencoded");
dataRequest.send("searchValue=" + queryString);

}

</script>

<div>
    <form id="floc">
        <strong>Where Did You Go:</strong> <input type="text" id = "locStr" 
        placeholder="location"> 
        <input type="submit" value="Search" onclick="getLoc()">
    </form>
</div>

<!--    <div id="dataDiv"> -->
  <form id="locDropDown">
  </form>
<!--    </div> -->

我的php脚本的相关部分:

<?php

$queryStr = htmlspecialchars($_POST['searchValue']);
$queryStr .= "%";

// Check sql
$locSql = "SELECT location FROM `location_lkup`  \n"
    . "WHERE location LIKE '" .$queryStr. "' \n"  
    . "ORDER BY `location_lkup`.`location` ASC";

$locRslt = $conn->query($locSql);

//Build Result String
/* $display_string = "<form id = 'locDropDown'>"; */
   $display_string .= "<select name = 'locChoices'>";

// If returned records >0 insert a new row in the select form for each loc 
   returned

if ($locRslt -> num_rows > 0) {
$rowcounter = 1;
while($row = $locRslt -> fetch_array(MYSQLI_ASSOC)) {
$display_string .= "<option value = " . $rowcounter . ">" . $row['location'] 
. "</option>";
$rowcounter++;
}
}
else {
    $display_string .= "<option value = '1'> NO DATA </option>" ;
}  

$display_string .= "</select>";
$display_string .= "<input type = 'button' value= 'Select' onclick= 
   'getSelectedloc()'>";

 /* $display_string .= "</form>"; */

 echo $display_string;
?> 

任何建议都将不胜感激。感谢。

0 个答案:

没有答案