2012-04-23 5 views
1

У меня есть два текстовых поля, которые независимо от того, что пользователь входит в первое текстовое поле, он появится во втором из Ajax. Мне нужно использовать для цикла, чтобы иметь несколько строк, и каждая строка имеет собственное значение. HTMLНесколько строк текстового поля с определенным значением С Ajax

<form style="text-align:center" method="post" action="" name="form1"> 
<?php for($x=0; $x<4; $x++){ ?> 
<input type="text" size="30" id="country" onChange="getCurrencyCode('find_ccode.php?country='+this.value)" /> 
<input type="text" name="cur_code" id="cur_code" ></p> 

Ajax

function getXMLHTTP() { 
     var xmlhttp=false; 
     try{ 
      xmlhttp=new XMLHttpRequest(); 
     } 
     catch(e) {  
      try{    
       xmlhttp= new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      catch(e){ 
       try{ 
       xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
       } 
       catch(e1){ 
        xmlhttp=false; 
       } 
      } 
     } 

     return xmlhttp; 
    } 



function getCurrencyCode(strURL) 
{  
    var req = getXMLHTTP();  
    if (req) 
    { 
     req.onreadystatechange = function() 
     { 
      if (req.readyState == 4) 
      {   
       if (req.status == 200) 
       {      
        document.getElementById('cur_code').value=req.responseText;      
       } 

      }    
     }   
     req.open("GET", strURL, true); 
     req.send(null); 
    }   
} 

Php

$country=$_REQUEST['country']; 
echo $country; 

Пожалуйста, помогите мне с этим.

+0

Вы знаете, что это событие «OnChange» не будут испускается после того, как содержимое ввода текста изменилось? Он срабатывает, когда вход теряет фокус. – Exander

+0

Он мог использовать 'setInterval', чтобы проверять его время от времени, и если значение измененного поля в настоящий момент действительно было изменено, тогда инициируйте вызов. – Eugene

ответ

1

Попробуйте, как это ...

<form style="text-align:center" method="post" action="" name="form1"> 
<?php for($x=0; $x<4; $x++){ ?> 
<input type="text" size="30" id="country<?php echo $x; ?>" onChange="getCurrencyCode(<?php echo $x; ?>);" /> 
<input type="text" name="cur_code" id="cur_code<?php echo $x; ?>" ></p> 

Javascript функция

function getCurrencyCode(num) 
{  
    thisval = document.getElementById('country'+num).value; 
     if(thisval=="") { 
      alert("Enter Proper Values!..."); 
      return false; 
     } 
    try{ 
     // Opera 8.0+, Firefox, Safari 
     ajaxRequest = new XMLHttpRequest(); 
    }catch (e){ 
     // Internet Explorer Browsers 
     try{ 
      ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
      try{ 
       ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (e){ 
       // Something went wrong 
       alert("Your browser broke!"); 
       return false; 
      } 
     } 
    } 
    var strURL = "find_ccode.php?country="+thisval; 
    ajaxRequest.onreadystatechange =getresult;  
    ajaxRequest.open("GET", strURL, true); 
    ajaxRequest.send(null); 
} 
function getresult(){ 
    if(ajaxRequest.readyState == 4){ 
     document.getElementById('cur_code'+num).value = ajaxRequest.responseText; 
    } 
} 
+0

Он возвращает значение, когда я предупреждаю в javascript, но часть ajax не работает. как мне обратиться в php-файл? мой текущий $ country = $ _ REQUEST ['country']; echo $ country; Что вы предлагаете? – user1328273

+0

вы должны использовать метод get. Измените эту строку $ country = $ _ GET ['country']; – nithi

+0

спасибо за ваш ответ, но он ничего не отображает при отправке текстовых полей в каждой строке. – user1328273

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