我是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的答案。 仍然需要帮助原始问题仍然存在。
答案 0 :(得分:0)
解决了这个问题。
我推了:
$.ajaxSetup({
url: "remote.php",
global: true,
type: "POST"
});
在我的ajax脚本之前,它已经启动了。请不要问我为什么,它只是有效;)
感谢您的所有答案。