2014-03-03 58 views
0

我必須在提交之前檢索三個輸入值,以便我可以使用ajax根據這些框中的信息填寫表單。如何在提交前檢索輸入值

我先檢查了三盒都使用這個腳本文本:

<script> 
jQuery(document).ready(function() { 
    var flag = false; 
    jQuery(".validation").change(function() { 
     flag = true; 
     jQuery(".validation").each(function() { 
      if (jQuery(this).val().trim() == "") { 
       flag = false; 
      } 
     }); 
     if (flag==true) { 
      var calle = jQuery("#calle").val(); 
      var municipio = jQuery("#municipio").val(); 
      var provincia = jQuery("#provincia").val();    

      var direccion = calle +","+ municipio +","+ provincia; 
      direccion = direccion.replace(/\s/g,'+'); 
     } 
    }); 
}); 
</script> 

我需要的是,當這三個字段有一個值來檢索值,以便我可以通過它通過在PHP中的URL在提交前(AJAX也許?)

$url = 'http://maps.googleapis.com/maps/api/geocode/json?address='.$value .'&sensor=false'; 

$值將變量(direccion),這是在腳本中。

如果您需要更多信息,請讓我知道。

+0

url構造的是什麼,是目標php腳本的url? – dreamweiver

+0

你可以使用PHP來獲取值嗎?在您的

標記中,只需爲每個輸入指定'method =「POST」'或'method =「GET」'(不帶單引號)並確保您有'name ='your_input_value_name'''。然後,根據您選擇的方法,只需使用'$ _GET [「your_input_value_name」]'或'$ _POST [「your_input_value_name」]]即可。這給你更大的控制權,並將在服務器端進行所有驗證。 – Michael

+0

問題在於表單的其餘部分必須根據這三個字段中的信息填寫。這意味着如果我填寫了三個字段,表單的其餘部分在提交前填寫完畢。 – PLATANIUM

回答

0

您需要將該變量設置爲全局以在外部訪問該變量。由於要聲明變量,變量的範圍僅保留在更改函數內。所以聲明變量之外的變化event.like這樣的:

<script> 
jQuery(document).ready(function() { 
var flag = false; 
var direccion="";//declare variable 
jQuery(".validation").change(function() { 
    flag = true; 
    jQuery(".validation").each(function() { 
     if (jQuery(this).val().trim() == "") { 
      flag = false; 
     } 
    }); 
    if (flag==true) { 
     var calle = jQuery("#calle").val(); 
     var municipio = jQuery("#municipio").val(); 
     var provincia = jQuery("#provincia").val();    

     direccion = calle +","+ municipio +","+ provincia; 
     direccion = direccion.replace(/\s/g,'+');//define variable on every on change 
    } 
    }); 
}); 
</script> 
+0

這並不能解決我的問題:S – PLATANIUM

+0

@MONZTAAA:你到底想要什麼? –

0

在您form您可以添加onsubmit屬性將定義一個動作表單提交時服用。 如:

<form method='GET' action='' onsubmit='doAjax();return false;'> 
<input type='text' id='inp_name' value='hello'/> 
</form> 

<script> 
function doAjax(){ 
    alert("this form won't be posted!"); 
    return false; 
} 
</script> 
+0

我必須在不提交的情況下完成所有操作。 – PLATANIUM

0

你需要做一個Ajax調用其構造

jQuery(document).ready(function() { 
    var flag = false; 
jQuery(".validation").change(function() { 
    flag = true; 
    var direccio=""; 
    jQuery(".validation").each(function() { 
     if (jQuery(this).val().trim() == "") { 
      flag = false; 
     } 
    }); 
    if (flag==true) { 
     var calle = jQuery("#calle").val(); 
     var municipio = jQuery("#municipio").val(); 
     var provincia = jQuery("#provincia").val();    

     direccion = calle +","+ municipio +","+ provincia; 
     direccion = direccion.replace(/\s/g,'+'); 
    } 

    $.ajax({ 
     url: "target.php", 
     data:{'value':direccion}, 
     success: function(response) { 
      //process the data received from server script 
     }); 
    }); 

}); 

PHP代碼(target.php)的網址:

$value=$_POST['value']; 
    $url = 'http://maps.googleapis.com/maps/api/geocode/json?address='.$value .'&sensor=false'; 
    //further processing of data at server end and finally echo the data to client 
0

您需要用你最後的想要的輸入標籤來做。假設你想要數據到第三個輸入標籤,那麼你需要在第三個輸入標籤中使用onkeyup =「myFunction()調用你的自定義函數」

在myFunction()中,你可以檢查字段是否填充,也可以做ajax把數據傳輸到服務器