好吧,所以我創建了一個Javascript/PHP/Ajax應用程序。我有一個6個選擇框的序列。第一個是用HTML編寫的。當你改變選擇時,它通過Ajax向PHP發送一個變量,該變量使用變量來查詢數據庫。當第二個盒子改變它時,然後從前面的選擇框中發送2個變量。阿賈克斯鏈選擇框不刷新
每次選擇框發生變化時,它都會添加另一個要發送的變量。最後總共有5或6個變量都很好,一切運轉良好,幾乎可以做我想做的事情。
我的問題發生在選擇框3和6.
最初他們工作正常。但是當您返回更改選擇框2時,編號3不會刷新。值保持與以前相同。與數字6相同,當我更改數字3時,數字4改變並且順序數字5改變,但是數字6與先前的查詢保持相同。所有使用的Ajax代碼與僅變量名稱和相關元素更改相同。
任何人都可以幫忙嗎?我會發布鏈接到應用程序和有問題的ajax代碼。
就這樣你知道只有選擇框1最初是可見的,其餘的都是由php/ajax onchange生成的。
繼承人的代碼有問題
function getHTTPObject(){
if (window.ActiveXObject)
return new ActiveXObject("Microsoft.XMLHTTP");
else if (window.XMLHttpRequest)
return new XMLHttpRequest();
else {
alert("Your browser does not support AJAX.");
return null;
}
}
function doWork(){
var selectBox = document.getElementById("SelectManufacturer"); // get HTML select box by id
httpObject = getHTTPObject();
httpObject.open("GET", "http://4udev.refixstudios.co.uk/wp-content/martTest/bNbAjax.php?inputText="
+selectBox.options[selectBox.selectedIndex].text , true);
httpObject.onreadystatechange=function()
{
if (httpObject.readyState==4 && httpObject.status==200)
{
document.getElementById('selectModel').innerHTML = httpObject.responseText;;
}
}
httpObject.send()
}
function networkSelector()
{
var selectBox2 = document.getElementById("SelectManufacturer"); // get HTML select box by id
var selectModel = document.getElementById("modelSelector");
httpObject2 = getHTTPObject();
httpObject2.open("GET", "http://4udev.refixstudios.co.uk/wp-content/martTest/NetworkAjax.php?inputText2=" +selectBox2.options[selectBox2.selectedIndex].text +"&modelText2="+selectModel.options[selectModel.selectedIndex].text, true);
httpObject2.onreadystatechange = function()
{
if(httpObject2.readyState == 4 && httpObject2.status==200){
document.getElementById("networkSelect").innerHTML = httpObject2.responseText;
}
}
httpObject2.send();
}
function minuteSelector(){
var selectBox3 = document.getElementById("SelectManufacturer"); // get HTML select box by id
var selectModel3 = document.getElementById("modelSelector");
var NetworkSelect3 = document.getElementById("networkSelector");
httpObject3 = getHTTPObject();
httpObject3.open("GET", "http://4udev.refixstudios.co.uk/wp-content/martTest/minuteAjax.php?inputText3="+selectBox3.options[selectBox3.selectedIndex].text+"&modelText3="+selectModel3.options[selectModel3.selectedIndex].text+"&networkText3="+NetworkSelect3.options[NetworkSelect3.selectedIndex].text, true);
httpObject3.onreadystatechange = function(){
if(httpObject3.readyState == 4 && httpObject3.status==200){
document.getElementById("minuteSelect").innerHTML =httpObject3.responseText;
}
}
httpObject3.send();
}
function textSelector(){
var selectBox4 = document.getElementById("SelectManufacturer"); // get HTML select box by id
var selectModel4 = document.getElementById("modelSelector");
var networkSelect4 = document.getElementById("networkSelector");
var minuteSelect4 = document.getElementById("minutesSelector");
httpObject4 = getHTTPObject();
httpObject4.open("GET", "http://4udev.refixstudios.co.uk/wp-content/martTest/textAjax.php?inputText4=" +selectBox4.options[selectBox4.selectedIndex].text+"&modelText4="+selectModel4.options[selectModel4.selectedIndex].text+"&networkText4="+networkSelect4.options[networkSelect4.selectedIndex].text +"&minuteText4="+minuteSelect4.options[minuteSelect4.selectedIndex].text, true);
httpObject4.onreadystatechange = function(){
if(httpObject4.readyState == 4 && httpObject4.status==200){
document.getElementById("textSelect").innerHTML =httpObject4.responseText;
}
}
httpObject4.send();
}
function dataSelector(){
var selectBox5 = document.getElementById("SelectManufacturer"); // get HTML select box by id
var selectModel5 = document.getElementById("modelSelector");
var networkSelect5 = document.getElementById("networkSelector");
var minuteSelect5 = document.getElementById("minutesSelector");
var textsSelector5 = document.getElementById("textsSelector");
httpObject5 = getHTTPObjectAgainB();
httpObject5.open("GET", "http://4udev.refixstudios.co.uk/wp-content/martTest/dataAjax.php?inputText5="+selectBox5.options[selectBox5.selectedIndex].text+"&modelText5="+selectModel5.options[selectModel5.selectedIndex].text+"&networkText5="+networkSelect5.options[networkSelect5.selectedIndex].text +"&minuteText5="+minuteSelect5.options[minuteSelect5.selectedIndex].text+"&textText5="+textsSelector5.options[textsSelector5.selectedIndex].text, true);
httpObject5.onreadystatechange = function(){
if(httpObject5.readyState == 4){
document.getElementById("dataSelect").innerHTML = httpObject5.responseText;
}
}
httpObject5.send()
}
這裏是鏈接到應用http://4udev.refixstudios.co.uk/csv-test/
測試的購買選擇任何製造商和型號,然後網絡,之後選擇蘋果的最佳方式---新的Ipad 4G,這是你如何注意到它不會改變。這個選擇應該只帶回橙網絡
而且繼承人它調用
<?php
if (isset($_GET['inputText2']))
{
$manufacturer = ($_GET['inputText2']);
if (isset ($_GET['modelText2']))
{
$model = ($_GET['modelText2']);
}
}
$conA = mysql_connect("localhost","****","*****");
if (!$conA)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("refixstu_4udev", $conA);
$selectApplea = mysql_query("SELECT DISTINCT network FROM wp_selector_apple WHERE model = '$model' ");
$selectBlackberry = mysql_query("SELECT DISTINCT network FROM wp_selector_blackberry WHERE model = '$model'");
$selectDoro = mysql_query("SELECT DISTINCT network FROM wp_selector_doro WHERE model = '$model'");
$selectHTC = mysql_query("SELECT DISTINCT network FROM wp_selector_htc WHERE model = '$model'");
$selectLG = mysql_query("SELECT DISTINCT network FROM wp_selector_lg WHERE model = '$model'");
$selectMotorola = mysql_query("SELECT DISTINCT network FROM wp_selector_motorola WHERE model = '$model'");
$selectNokia = mysql_query("SELECT DISTINCT network FROM wp_selector_nokia WHERE model = '$model'");
$selectSamsung = mysql_query("SELECT DISTINCT network FROM wp_selector_samsung WHERE model = '$model'");
$selectSony = mysql_query("SELECT DISTINCT network FROM wp_selector_sony WHERE model = '$model'");
$selectSonyE = mysql_query("SELECT DISTINCT network FROM wp_selector_sonyericsson WHERE model = '$model'");
$selectZte = mysql_query("SELECT DISTINCT network FROM wp_selector_ZTE WHERE model = '$model'");
?>
<select id="networkSelector" style="width:100px;" align="right" onchange="minuteSelector()">
<option> Select Network </option>
<?php
// Start Apple Testing
if($manufacturer == "Apple")
{
while($rowa = mysql_fetch_array($selectApplea))
{
foreach(array_unique($rowa) as $model)
{
echo"<option>"; echo $rowa['network']; echo"</option>";
}
}
}
else if($manufacturer == "BlackBerry")
{
while($rowa = mysql_fetch_array($selectBlackberry))
{
foreach(array_unique($rowa) as $model)
{
echo"<option>"; echo $rowa['network']; echo"</option>";
}
}
}
else if($manufacturer == "Doro")
{
while($rowa = mysql_fetch_array($selectDoro))
{
foreach(array_unique($rowa) as $model)
{
echo"<option>"; echo $rowa['network']; echo"</option>";
}
}
}
else if($manufacturer == "HTC")
{
while($rowa = mysql_fetch_array($selectHTC))
{
foreach(array_unique($rowa) as $model)
{
echo"<option>"; echo $rowa['network']; echo"</option>";
}
}
}
else if($manufacturer == "LG")
{
while($rowa = mysql_fetch_array($selectLG))
{
foreach(array_unique($rowa) as $model)
{
echo"<option>"; echo $rowa['network']; echo"</option>";
}
}
}
else if($manufacturer == "Motorola")
{
while($rowa = mysql_fetch_array($selectMotorola))
{
foreach(array_unique($rowa) as $model)
{
echo"<option>"; echo $rowa['network']; echo"</option>";
}
}
}
else if($manufacturer == "Nokia")
{
while($rowa = mysql_fetch_array($selectNokia))
{
foreach(array_unique($rowa) as $model)
{
echo"<option>"; echo $rowa['network']; echo"</option>";
}
}
}
else if($manufacturer == "Samsung")
{
while($rowa = mysql_fetch_array($selectSamsung))
{
foreach(array_unique($rowa) as $model)
{
echo"<option>"; echo $rowa['network']; echo"</option>";
}
}
}
else if($manufacturer == "Sony")
{
while($rowa = mysql_fetch_array($selectSony))
{
foreach(array_unique($rowa) as $model)
{
echo"<option>"; echo $rowa['network']; echo"</option>";
}
}
}
else if($manufacturer == "Sone Ericsson")
{
while($rowa = mysql_fetch_array($selectSonyE))
{
foreach(array_unique($rowa) as $model)
{
echo"<option>"; echo $rowa['network']; echo"</option>";
}
}
}
else if($manufacturer == "Zte")
{
while($rowa = mysql_fetch_array($selectLG))
{
foreach(array_unique($rowa) as $model)
{
echo"<option>"; echo $rowa['network']; echo"</option>";
}
}
}
mysql_close($conA);
?>
</select>
對於一半的循環,你使用'array_unique',但不是其餘的。沒有看到查詢的結果,很難說這個問題是否重要。 – ethrbunny
我沒有注意到,感謝評論我現在要修改這些。當你說結果時,你是指SQL的輸出? – Martin
是的。不知道更多關於PHP是什麼「看到」它很難猜測爲什麼你看到..好..你看到什麼...... – ethrbunny