在javascript的基础上从数据库中获取值

时间:2014-01-11 07:39:45

标签: javascript php jquery mysql

我有一个文件,我们有一个网络表单提交。这种形式有4到5个阴影。其中三个相互依赖。当选择第一个下拉列表中的值时,会触发一个函数“document.formName.submit()”,它会刷新整个页面并执行mySql的查询,我们会为下一个字段获取一个新值,依此类推。我不希望刷新发生。我可以在没有页面刷新的情况下执行此过程并从数据库中获取值。

以下是该代码的一部分

    <div class="ca-box">
    <div class="bold child1">Country<span class="validation"> *</span></div>
    <div class="child2">
      <select id="cid" name="cid" onchange="javascript:submit_form() ;">
        <?
        $query = "SELECT * FROM country"; 
        $result = $DB->DB_Query($query); 
        ?>
        <option value="">- Select Country -</option>
        <?
        for($i = 0; $i < count($result); $i++){
            if ($cid == $result[$i]['cid']) {
                echo "<option value=\"".$result[$i]['cid']."\" selected=\"selected\">".$result[$i]['country']."</option>"; 
            } else {
                echo "<option value=\"".$result[$i]['cid']."\" >".$result[$i]['country']."</option>"; 
            }
        } ?>
      </select>
    </div>
  </div>
  <div class="ca-box">
    <div class="bold child1">Region<span class="validation"> *</span></div>
    <div class="child2">
    <? echo $_POST['cid']." ==="?>
      <select id="rid" name="rid" onchange="javascript:submit_form2();">
        <?
        $query = "SELECT * FROM region where cid=".$cid; 
        $result = $DB->DB_Query($query); 
        ?>
        <option value="">- Select Region -</option>
        <?
        for($i = 0; $i < count($result); $i++){
            if ($rid == $result[$i]['rid']) {
                echo "<option value=\"".$result[$i]['rid']."\" selected=\"selected\">".$result[$i]['region']."</option>"; 
            } else {
                echo "<option value=\"".$result[$i]['rid']."\" >".$result[$i]['region']."</option>"; 
            }
        } ?>
        <option value="Other">Other</option>
      </select>
    </div>
  </div>
  <div class="ca-box">
    <div class="bold child1">City<span class="validation"> *</span></div>
    <div class="child2">
      <select id="ccid" name="ccid">
        <?
        $query = "SELECT * FROM city where rid =".$rid; 
        $result = $DB->DB_Query($query); 
        ?>
        <option value="">- Select City -</option>
        <?
        for($i = 0; $i < count($result); $i++){
            if ($ccid == $result[$i]['ccid']) {
                echo "<option value=\"".$result[$i]['ccid']."\" selected=\"selected\">".$result[$i]['city']."</option>"; 
            } else {
                echo "<option value=\"".$result[$i]['ccid']."\" >".$result[$i]['city']."</option>"; 
            }
        } ?>
        <option value="Other">Other</option>
      </select>
    </div>
  </div>

  <script type="text/javascript">
  function submit_form(location) {
    //document.formName.type.value="location";
    //document.formName.action = document.formName.action + "#" + location
    document.formName.ccid.value = "";
    document.formName.rid.value = "";
    document.formName.submit();
    return true;
}
function submit_form2(location) {
    //document.formName.type.value="location";
    //document.formName.action = document.formName.action + "#" + location
    document.formName.ccid.value = "";
    document.formName.submit();
    return true;
}
  </script>

1 个答案:

答案 0 :(得分:0)

我建议使用jQuery进行AJAX调用,因为jQuery团队为您简化了流程。

我建议搜索“JQuery AJAX和php从mysql数据库中获取数据”。您将找到许多资源,演示如何获取您尝试获取的值。

另外,请勿使用document.formName.submit()来检索值。 Javascript是一种客户端语言,应该能够使用AJAX来检索信息,而无需“提交”或刷新页面。

对于相关的StackOverflow问题: jQuery Ajax POST example with PHP

有关jQuery AJAX调用的进一步文档: http://api.jquery.com/jquery.ajax/

祝你好运。