繁体   English   中英

写入结果后,Ajax和PHP重新发送请求

[英]Ajax and PHP resending request after results have been written

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

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

例如:我有一个名为:

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

当选择“目标”时,所有其他下拉列表均以与目标相对应的方式重写。 所以,当我有了这个目的地时,现在我要选择女巫月份,或者我想使用的港口或船舶等等。

我希望你明白。

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

我的代码是:

阿贾克斯:

<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的答案。 仍然需要帮助,原来的问题仍然存在。

解决了问题。

我已经提出:

$.ajaxSetup({

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

});

在我的ajax脚本之前,它启动了。 请不要问我为什么,它会起作用;)

感谢您的所有答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM