2014-02-13 3 views
0

Я создал выпадающий список, вызывающий значения из базы данных. У меня проблема: при выборе выбора из выпадающего URL-адрес остается неизменным.Выпадающий список - выбор написан по адресу

Это код:

<form method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
<select name="country" onchange='this.form.submit()'> 
    <?php $result= mysql_query('SELECT DISTINCT country FROM roaming_testing ORDER BY country ASC'); ?> 
<option value="x" selected>Select your destination</option> 
    <?php while($row= mysql_fetch_assoc($result)) { ?> 
     <option value="<?php echo htmlspecialchars($row['country']);?>" > 
      <?php echo htmlspecialchars($row['country']); ?> 
     </option> 
    <?php } ?> 
<input type="hidden" name="action" value="submit" /><br> 
</select> 
</form> 

<?php 
if(isset($_GET["action"]) && $_GET["action"] == "submit") { 


    $results= $wpdb->get_results("SELECT * FROM roaming_testing WHERE country='$_GET[country]'"); 
    $zones= $wpdb->get_results("SELECT * FROM roaming_rates WHERE zone IN (SELECT zone FROM roaming_testing WHERE country='$_GET[country]')"); 
    $operators_postpaid= $wpdb->get_results("SELECT * FROM roaming_testing WHERE country='$_GET[country]' AND postpaid_roaming=1"); 
    $operators_prepaid= $wpdb->get_results("SELECT * FROM roaming_testing WHERE country='$_GET[country]' AND prepaid_roaming=1"); 


if (empty($results)) 
    { echo '<h3 style="color:red;">No Results</h3>';} 
else 
    {foreach ($results as $result) { 
     foreach ($zones as $zone){ 
}}} 

?> 

<?php 


echo '<div class="roaming-header">'.htmlspecialchars($_GET["country"]).'</div>'.'<br>'; 

if (empty($operators_postpaid)){ 
echo " 
<span style='font-size:21px; font-family:Arial, Helvetica, sans-serif; color:#00abbd; font-weight:bold'>Pay Monthly</span> 
<table cellpadding='6' cellspacing='0' border='0' width='100%'> 
    <tr> 
     <td> 
      <p class='rates'>Available soon</p> 
     </td> 
    </tr> 
<tr><td></td></tr> 
<tr><td></td></tr> 
<tr><td></td></tr> 
<tr><td></td></tr> 
<tr><td></td></tr> 
<tr><td></td></tr> 
<tr><td></td></tr> 
</table> 

"; 
}else{ 

echo " 

<table width='620'> 
<tr> 

<td width='50%'> 

<span style='font-size:21px; font-family:Arial, Helvetica, sans-serif; color:#00abbd; font-weight:bold'>Pay Monthly</span> 
    <table width='310' cellpadding='6' cellspacing='0' border='0' style='border-color:#00abbd; border-width:0px; border-style:solid; padding:3px'> 

    <tr bgcolor='#eeeeee'> 
     <td width='160'> 
      <p class='rates' style='color:#00abbd;'><strong>Call to $result->country</strong></p> 
     </td> 

     <td> 
      <p class='rates'>&euro; $zone->calling_visiting_country /min</p> 
     </td> 
    </tr> 

    <tr> 
     <td> 
      <p class='rates' style='color:#00abbd;'><strong>Call to Malta</strong></p> 
     </td> 

     <td> 
      <p class='rates'>&euro; $zone->calling_malta/min</p> 
     </td> 
    </tr> 

    <tr bgcolor='#eeeeee'> 
     <td> 
      <p class='rates' style='color:#00abbd;'><strong>Call to Zone $result->Zone </strong> </p> 
     </td> 

     <td> 
      <p class='rates'>&euro; $zone->calling_visiting_country /min</p> 
     </td> 
    </tr> 

    <tr> 
     <td> 
      <p class='rates' style='color:#00abbd;'><strong>Calling other Zones</strong></p> 
     </td> 

     <td> 
      <p class='rates'>&euro; $zone->calling_other_countries /min</p> 
     </td> 
    </tr> 

    <tr bgcolor='#eeeeee'> 
     <td> 
      <p class='rates' style='color:#00abbd;'><strong>Receiving Calls</strong></p> 
     </td> 

     <td> 
      <p class='rates'>&euro; $zone->receiving_call /min</p> 
     </td> 
    </tr> 

    <tr> 
     <td> 
      <p class='rates' style='color:#00abbd;'><strong>Data</strong></p> 
     </td> 

     <td> 
      <p class='rates'> &euro; $zone->data</p> 
     </td> 
    </tr> 

    <tr bgcolor='#eeeeee'> 
     <td> 
      <p class='rates' style='color:#00abbd;'><strong>SMS</strong></p> 
     </td> 

     <td> 
      <p class='rates'>&euro; $zone->sms</p> 
     </td> 
    </tr> 

    <tr> 
     <td> 
      <p class='rates' style='color:#00abbd;'><strong>MMS</strong></p> 
     </td> 
     "; 

if ($result->Zone == 1){ 
     echo "<td> 
      <p class='rates'>&euro; $zone->data</p>    
     </td> 
    </tr> 
</table> 
";} else{ 

echo " 
     <td> 
      <p class='rates'>&euro; $zone->mms + €$zone->data</p>    
     </td> 
    </tr> 
</table> 
";} 
} 

if (empty($operators_prepaid)){ 
echo " 
<td width='50%'> 
<span rel='country2' style='font-size:21px; font-family:Arial, Helvetica, sans-serif; color:#a7cf3a; font-weight:bold'>Prepaid & Hybrid</span> 
    <table width='310' cellpadding='6' cellspacing='0' border='0' style='border-color:#00abbd; border-width:0px; border-style:solid; padding:3px'> 
</table> 
"; 
}else{ 
echo " 
<td width='50%'> 
<span rel='country2' style='font-size:21px; font-family:Arial, Helvetica, sans-serif; color:#a7cf3a; font-weight:bold'>Prepaid & Hybrid</span> 
    <table width='310' cellpadding='6' cellspacing='0' border='0' style='border-color:#00abbd; border-width:0px; border-style:solid; padding:3px'> 

    <tr bgcolor='#eeeeee'> 
     <td width='160'> 
      <p class='rates' style='color:#a7cf3a;'><strong>Call to $result->country</strong></p> 
     </td> 

     <td> 
      <p class='rates'>&euro; $zone->calling_visiting_country /min</p> 
     </td> 
    </tr> 

    <tr> 
     <td> 
      <p class='rates' style='color:#a7cf3a;'><strong>Call to Malta</strong></p> 
     </td> 

     <td> 
      <p class='rates'>&euro; $zone->calling_malta/min</p> 
     </td> 
    </tr> 

    <tr bgcolor='#eeeeee'> 
     <td> 
      <p class='rates' style='color:#a7cf3a;'><strong>Call to Zone $result->Zone </strong> </p> 
     </td> 

     <td> 
      <p class='rates'>&euro; $zone->calling_visiting_country /min</p> 
     </td> 
    </tr> 

    <tr> 
     <td> 
      <p class='rates' style='color:#a7cf3a;'><strong>Calling other Zones</strong></p> 
     </td> 

     <td> 
      <p class='rates'>&euro; $zone->calling_other_countries /min</p> 
     </td> 
    </tr> 

    <tr bgcolor='#eeeeee'> 
     <td> 
      <p class='rates' style='color:#a7cf3a;'><strong>Receiving Calls</strong></p> 
     </td> 

     <td> 
      <p class='rates'>&euro; $zone->receiving_call /min</p> 
     </td> 
    </tr> 

    <tr> 
     <td> 
      <p class='rates' style='color:#a7cf3a;'><strong>Data</strong></p> 
     </td> 

     <td> 
      <p class='rates'> &euro; $zone->data</p> 
     </td> 
    </tr> 

    <tr bgcolor='#eeeeee'> 
     <td> 
      <p class='rates' style='color:#a7cf3a;'><strong>SMS</strong></p> 
     </td> 

     <td> 
      <p class='rates'>&euro; $zone->sms</p> 
     </td> 
    </tr> 

    <tr> 
     <td> 
      <p class='rates' style='color:#a7cf3a;'><strong>MMS</strong></p> 
     </td>"; 

/*------------------------------------------------------------------------------------------------ 
     check for zone 1 for MMS rating 
--------------------------------------------------------------------------------------------------*/ 

     if ($result->Zone == 1){ 
echo " 
     <td> 
      <p class='rates'>&euro; $zone->data</p>    
     </td> 
";} 

else{ 

echo " 
     <td> 
      <p class='rates'>&euro; $zone->mms + €$zone->data</p>    
     </td> 

"; 
} 

echo " 
</tr> 
</table> 
</table> 
"; 
} 
/*------------------------------------------------------------------------------------------------ 
     Loops for Roaming Operators 
--------------------------------------------------------------------------------------------------*/ 

echo "While in $result->country you can use the following networks: <br><br>"; 

if (empty($operators_postpaid)){ 
echo "Available networks for Pay Monthly customers<br>"; 
echo "Service will be available soon<br>"; 
}else{ 
echo "Available networks for Pay Monthly customers"; 
foreach ($operators_postpaid as $operator_postpaid){ 
    echo "<li>$operator_postpaid->operator</li>"; 
}} 

echo "<br>"; 

if (empty($operators_prepaid)){ 
echo "Available networks for Prepaid customers<br>"; 
echo "Service will be available soon<br>"; 
}else{ 
echo "Available networks for Prepaid customers"; 
foreach ($operators_prepaid as $operator_prepaid){ 
    echo "<li>$operator_prepaid->operator</li>"; 
}} 

Я хочу написать свой выбор в URL, например: www.mydomain.com/?country=unitedkingdom

+1

Существует дополнительный '" 'в действии формы .... –

ответ

0

Вы должны использовать метод GET в форме чтобы это сделать

+0

Благодаря его правда это делает получить URL с параметрами, которые я упоминал, но, к сожалению, данные не загружаются до сих пор. Я установил ниже код: RCB

+0

Вы могли бы обновить весь код и поместить его снова Оригинальный пост? – Tommy

+0

также меняет название «страна» – Tommy

1

Дополнительный " находится в вашем атрибуте действия <form>. Удалите это. А также изменить способ get

<form method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
//elements 
</form> 

И вам нужно изменить имя в раскрывающемся country. то есть.,

<select name="country" onchange='this.form.submit()'> 
+0

Я отредактировал свой основной пост и поместил весь код, который я пишу там. Код все еще тестируется и развивается, поэтому для этого может быть немного грязных извинений. – RCB

+0

@ user3025379 Вы все еще застряли на этом –

+0

Что происходит, когда я выбираю страну из выпадающего списка, данные не поступают – RCB

Смежные вопросы