2013-03-07 81 views
0

singleselect.html靜態下拉菜單使用AJAX,PHP

<html> 
    <script> 
    function singleselect(str) 
    { 
     var xmlhttp; 
     if(str.length == 0) 
     { 
     document.getElementById("sing").innerHTML=""; 
     return; 
     } 

     if(window.XMLHttpRequest) 
     { 
     xmlhttp = new XMLHttpRequest();   
     } 
     else 
     { 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 

     xmlhtttp.onreadystatechange = function() 
     { 
     if(xmlhttp.readyState == 4) 
     { 
      document.getElementById("sing").innerHTML = xmlhttp.responsetext; 
     } 
     } 
     xmlhttp.open("POST","singleselect.php?s=" +str,true); 
     xmlhttp.send(); 
    } 
    </script> 

    <style> 
    div { font-family:verdana; font-size:13px; margin-left:400px; margin-top:100px; } 
    </style> 
    <body> 
    <div> 
    Select a country : 
     <select onchange="document(this.value)"> 
     <option>Select a country</option> 
     <option value="0">INDIA</option> 
     <option value="1">United States of America</option> 
     <option value="2">United Kingdom</option> 
     <option value="3">Australia</option> 
    </select> 
    </div> 

    <div id="sing"></div> 
    </body> 
</html> 

singleselect.php

<?php  

$store[0] = "Please select a country"; 
$store[1] = "Andhra Pradesh"; 
$store[2] = "New York"; 
$store[3] = "London"; 
$store[4] = "Austraila"; 

$s = $_REQUEST['s']; 

?> 

當我點擊一個國家,應該顯示關係到一個國家的狀態列表,我想在PHP中使用靜態數據庫來完成。因爲我是jQuery和AJAX。我需要你的指導。

+0

你是什麼意思靜態?如果您從selectbox傳送值,則需要

+0

但我想使用靜態內容而不是從數據庫中使用 – ronbosc 2013-03-07 07:52:10

+0

您寫道「我想在PHP中使用靜態數據庫來完成,但使用數據庫」,所以你讓我感到困惑。那麼你將不得不在文本文件或CSV或任何其他國家的這個國家的名單,並以這種方式格式化,以便您可以輕鬆閱讀。例如,如果你使用文本文件,也許你可以像這樣格式化國家:城市;然後讀取文件explode(),以便獲取數組並搜索所需的值。搜索網絡閱讀txt文件和爆炸()函數 – vodich 2013-03-07 07:57:21

回答

0

如果你希望你在arrauy城市數據也許你可以做這樣的事情:

$store[0] = "Please select a country"; 
$store[1][0] = "Andhra Pradesh"; 
$store[2][0] = "New York"; 
$store[3][0] = "London"; 
$store[4][0] = "Austraila"; 
$c= $_POST['s']; 
if(isset($store[$c]) && is_array($store[$c])){ 
    foreach($store[$c] as $k=>$v){ 
     echo $v; 
    } 
} 
0

我覺得這是你想要你的狀態是什麼。此外,使用國家代碼而不是數字索引會更好。

// states.php 

$states = array (
'IN' => array (
    'indian state', 
    'indian state 2'    
    ), 
'US' => array (
    'US state', 
    'US state 2' 
    ) 
); 

$select = ''; 
if(isset($_POST['s']) && isset($states[$_POST['s']])) { 
$select .= '<select name="states">'; 
foreach($states[$_POST['s']] as $state) { 
     $select .= '<option value="' . $state . '">' . $state . '</option>'; 
} 
$select .= '</select>';  
echo $select; 
} 
0

我不知道你想要什麼,但我知道你想要一個國家下拉列表根據國家。所以你需要做到這一點singleselect.php

$state_list = array(
'0' => array(
    'state 1', 
    'state 2', 
    'state 3' 
    ), 
'1' => array(
    'state 4', 
    'state 5', 
    'state 6' 
    ), 
'2' => array(
    'state 7', 
    'state 8', 
    'state 9' 
    ) 
); 

$select = '<select name="state">'; 
foreach($state_list[$_REQUEST['s']] as $key => $value) 
{ 
    $select .= '<option value="'.$key.'">'.$value.'</option>'; 
} 
$select .= '</select>'; 

echo $select; 

也許它會幫助你。