写完结果后发出Ajax和PHP重发请求

时间:2014-02-09 23:30:21

标签: php ajax

我是ajax的初学者,时间很短,所以我转向这个社区寻求帮助。 我的问题是: 当我成功发出ajax请求并返回结果时,我无法选择其他值。我将尝试在下面解释。

我有一个带有搜索表单的PHP页面,其中包含4个下拉列表和一个提交按钮。目标是通过从下拉列表中选择值来设置搜索参数。当您选择第一个值时,所有其他值必须根据所选值更改值。

例如:我有一个名为:

的下拉列表

目的地,月份,港口和船舶

当您选择目的地时,所有其他下拉列表将以与目的地对应的方式重写。因此,当我有这个目的地是单一的,现在我想选择巫婆月,或我想要使用的端口或船等等。

我希望你明白。

编辑:似乎这不是ajax的问题​​,但是在ajax返回值之后Jquery事件没有激烈起来。

我的代码是:

的Ajax:

<script>
var xmlhttp;

function showUser(dest,mese,port,ladja)
{
xmlhttp=GetXmlHttpObject();

if (xmlhttp==null)
  {
  alert ("Browser does not support HTTP Request");
  return;
  }
var url="remote.php";
url=url+"?dest="+dest+"&mese="+mese+"&port="+port+"&ladja="+ladja;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send();
}

function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("content").innerHTML=xmlhttp.responseText;
}
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}
</script>

PHP

<div id="src">
    <div id="main">
        <div id="content">
            <form name="src" id="src_form" method="post"  action="result.php">
            <div id="lin1" class="lin"><?php Destinacija(); ?></div>
            <div id="lin2" class="lin"><?php Mesec(); ?></div>
            <div id="lin3" class="lin"><?php Pristanisce(); ?></div>
            <div id="lin4" class="lin"><?php Ladja(); ?></div>
            <div id="lin5"><button id="src" type="submit">Išči</button></div>
           </form> 

        </div>
    </div>
</div>
 <script>
                $("#content").on("change", ".lin", function(event){
                event.preventDefault();
                //console.log( $( this ).text() );
                    showUser(document.getElementById('dest').value,document.getElementById('mese').value,document.getElementById('port').value,document.getElementById('ladja').value);
            });

            </script>   

            <?php include("ajax.php"); ?>
<?php
    function Destinacija()
    {
        include("class/class.Translate_inl.php");
        $tr = new Translate_inl("dest_code");
        include("includes/conSql.php");         
        $result = mysqli_query($con,"SELECT DISTINCT region_code FROM no_air_pricing");

        echo '<select name="dest" id="dest">'.PHP_EOL;
        echo '<option value="0">Destinacija</option>'.PHP_EOL;
        while($row = mysqli_fetch_array($result))
          {
                $dest = $tr->TrVar($row['region_code']);
                echo'<option value="'.$row['region_code'].'">'.$dest.'</option>'.PHP_EOL;
          }
        echo '</select>'.PHP_EOL;
        include("includes/disSql.php");
    }
    function Mesec()
    {           

            $tr = new Translate_inl("meseci");          
            include("includes/conSql.php");
            $mo = array();
            $i=0;
            $result = mysqli_query($con,"SELECT sail_date FROM no_air_pricing ORDER BY sail_date");

            while($row = mysqli_fetch_array($result))
              {
                  $month = explode("/",$row['sail_date']);
                  $mo[$i] = $month[0];
                  $i++;             
              }

            include("includes/disSql.php"); 
            $un_mo = array_unique($mo);
            $un_mo = array_values($un_mo);
            $k = count($un_mo);

            echo'<select name="mese" id="mese">'.PHP_EOL;
            echo'<option value="0">Mesec odhoda</option>'.PHP_EOL;
            for($j=0; $j<$k; $j++)
            {
              echo'<option value="'.$un_mo[$j].'">'.$tr->TrVar($un_mo[$j]).'</option>'.PHP_EOL;
            }
            echo'</select>'.PHP_EOL;

            unset($tr);
    }
    function Pristanisce()
    {

        $tr = new Translate_inl("port_code");
        $port = array();
        $i=0;
        include("includes/conSql.php");     

        $result = mysqli_query($con,"SELECT departure_port_code FROM no_air_pricing ORDER BY departure_port_code");     

        while($row = mysqli_fetch_array($result))
          {
            $port[$i] = $row['departure_port_code'];
            $i++;   
          }

        include("includes/disSql.php");

        $uport = array_unique($port);
        $uport = array_values($uport);
        $k = count($uport);
        echo '<select name="port" id="port">'.PHP_EOL;
        echo '<option value="0">Pristanišče odhoda</option>'.PHP_EOL;       
        for($j=0; $j<$k; $j++)
        {
          echo'<option value="'.$uport[$j].'">'.$tr->TrVar($uport[$j]).'</option>'.PHP_EOL;
        }       
        echo '</select>'.PHP_EOL;       
        unset($tr);
    }
    function Ladja()
    {

        $tr = new Translate_inl("ladje_kode");
        $ladje = array();
        $i=0;
        include("includes/conSql.php");         
        $result = mysqli_query($con,"SELECT ship_code FROM no_air_pricing ORDER BY ship_code ");        

        while($row = mysqli_fetch_array($result))
          {
            $ladje[$i] = $row['ship_code'];
            $i++;
          }
        include("includes/disSql.php");

        $uladje = array_unique($ladje);
        $uladje = array_values($uladje);
        $k = count($uladje);  
        echo '<select name="ladja" id="ladja">'.PHP_EOL;
        echo '<option value="0">Ladja</option>'.PHP_EOL;
        for($j=0; $j<$k; $j++)
        {
          echo'<option value="'.$uladje[$j].'">'.$tr->TrVar($uladje[$j]).'</option>'.PHP_EOL;
        }   
        echo '</select>'.PHP_EOL;
        unset($tr);
    }
?>

欢迎任何帮助。提前致谢。 我已经在php文件中编辑脚本代码,以实现Musa的答案。 仍然需要帮助原始问题仍然存在。

1 个答案:

答案 0 :(得分:0)

解决了这个问题。

我推了:

$.ajaxSetup({

    url: "remote.php",
    global: true,
    type: "POST"

});

在我的ajax脚本之前,它已经启动了。请不要问我为什么,它只是有效;)

感谢您的所有答案。