2012-03-04 27 views
0

我有一個表單,用戶必須從以下選擇國家。如果用戶選擇澳大利亞我想填充一個文本字段,用戶可以輸入那裏的手機號碼,以便爲那個特定的國家我可以存儲這些用戶的手機號碼。我試着用if語句,但它不工作。在註冊過程中 如果用戶選擇澳大利亞我希望他們也進入那裏的手機號碼和其他用戶的手機號碼,不需要選擇國家後的文本框插入

if(location==Australia){ 
echo'<tr> 
<td width="49" ><div align="left"></p><p> 
Mobile No</div></td><td> 
<input type="text" size="20" name="mobile" value="'.h($_REQUEST['mobile']).'" class="fpost" style="width:220px" /></tr>';} 



<tr class="row1"><td>Come from</td><td> 
       <select name="location" class="inputText"><option value="Afghanistan ">Afghanistan </option><option value="Albania ">Albania </option><option value="Algeria ">Algeria </option><option value="American Samoa ">American Samoa </option><option value="Andorra ">Andorra </option><option value="Angola ">Angola </option><option value="Anguilla ">Anguilla </option><option value="Antarctica ">Antarctica </option><option value="Ant &amp; Bar ">Ant &amp; Bar </option><option value="Argentina ">Argentina </option><option value="Armenia ">Armenia </option><option value="Aruba ">Aruba </option><option value="Australia ">Australia </option><option value="Austria ">Austria </option><option value="Azerbaijan ">Azerbaijan </option><option value="Bahamas ">Bahamas </option><option value="Bahrain ">Bahrain </option><option value="Bangladesh ">Bangladesh </option><option value="Barbados ">Barbados </option><option value="Belarus ">Belarus </option><option value="Belgium ">Belgium </option><option value="Belize ">Belize </option><option value="Benin ">Benin </option><option value="Bermuda ">Bermuda </option><option value="Bhutan ">Bhutan </option><option value="Bolivia ">Bolivia </option><option value="Bosnia ">Bosnia </option><option value="Botswana ">Botswana </option><option value="Bouvet">Bouvet</option><option value="Brazil ">Brazil </option><option value="Brunei">Brunei</option><option value="Zimbabwe">Zimbabwe</option></select> 

+0

哪裏是你的「if語句」不工作?我只看到靜態html代碼。 – Basti 2012-03-04 13:04:30

+0

請在選項列表中刪除所有這些國家,兩到三個樣本即可, – 2012-03-04 13:05:50

+1

上帝的母親,想象加入一個新的國家,如果您不必重複自己,請不要重複自己 – 2012-03-04 13:07:52

回答

1

我第一次嘗試,並從分開我的輸出邏輯我數據與這樣的東西,其中$countries是國家名稱的字符串數組。

<tr class="row1"> 
    <td>Come from</td> 
    <td> 
    <select name="location" id="location" class="inputText"> 
<?php 
    foreach ($counties as $country) { 
     echo '<option value="', $country, '">', $country, '</option>'; 
    } 
?> 
    </select> 
    <td> 
</tr> 

然後,我會使用jQuery的.change()功能或類似的框架來處理下拉。

$('#location').change(function() { 
    if ($(this).val() == 'Australia') { 
     // Show the text box 
    } 
}); 
1

好吧,我想你想是這樣的......(純JavaScript,沒有jQuery的。對於下面的代碼工作,一個ID添加到select元素,另一個用於textbox元素)

var showTextBox = function(prefix) { // Function to add the textbox with defined value 
    var textBox = document.getElementById('textbox') 
    textBox.value = prefix 
    textBox.style.display = 'block' 
} 
document.getElementById('select').onchange = function(e) { 
    var target = e.target || window.event // Cross-browser target 
    switch (target.value) { // Depending on the value 
     case 'Australia': 
      showTextBox('+61 ') // Use the function with the correct prefix 
      break; 
     case 'otherCountry': 
      showTextBox('+XX ') 
    } 
} 

switch聲明使得如果您稍後想要添加另一個國家,很容易這樣做。

P.S:I'm feeling lonely

1

如果在頁面上包含jQuery Library,則可以實現此效果,包括良好的滑動效果。

添加id="mobile_container"到包含手機號碼領域tr元素,並添加像這樣到您的網頁:

<script type="text/javascript"> 
$(function() { 

    // Hide the mobile field initially 
    if($("select[name='location']").val() != 'Australia') { 
     $("tr#mobile_container").hide(); 
    } 

    $("select[name='location']").change(function(){ 
     // This fires when user changes location 
     if($(this).val() == 'Australia') { 
      // Australia selected, let's show the mobile row 
      $("tr#mobile_container").slideDown(); 
     } else { 
      // Australia not selected, we make sure mobile row is hidden 
      $("tr#mobile_container").slideUp(); 
     } 
    }); 
}); 
</script> 
+0

已嘗試但不能在這裏工作是我的代碼\t

Mobile No

​​'; – 2012-03-04 13:44:57

+0

在您的「」之前添加「」。並且確保tr確實是'

'的一部分。您還應該刪除選項值中的尾隨空格(例如,'value =「澳大利亞」',而不是「value =」澳大利亞「')。另外請注意,jQuery幻燈片函數在表格行上看起來非常漂亮。我建議使用無表格佈局,或者可以使用show()而不是slideDown()和hide()來代替slideUp()。我第二個其他評論者關於你如何輸出國家名單;你的代碼不容易維護;相反,考慮一個不錯的PHP數組和循環。 – elaxsj2012-03-04 14:08:11

+0

未正常測試 – 2012-03-04 14:17:59