2012-09-08 13 views
0

我正在使用Google Visualizator Geomap混搭,我想做一個動態選擇的過濾器每次更改沒有任何「提交「按鈕從SQL查詢中檢索到的信息。我如何發送數據到一個* .php文件從提交的選擇形式沒有刷新

這裏是我的主網頁來源:(顯示在Firebug的任何錯誤和映射輸出)

<?php 
require 'protoext.php' 
?> 
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> 
    <script type='text/javascript' src='https://www.google.com/jsapi'></script> 
    <script type='text/javascript'> 

google.load('visualization', '1', {'packages': ['geomap']}); 
    google.setOnLoadCallback(drawMap); 

    function drawMap() { 
     var data = new google.visualization.DataTable(); 
    data.addColumn('string', 'Code'); 
    data.addColumn('number', 'Value'); 
    data.addRows([ 
     <?php while($r = mysql_fetch_assoc($res)) { 
       echo "['$r[COD]', $r[Value]],"; 
     } ?> 
    ]); 
     var options = {}; 
     options['dataMode'] = 'regions'; 
     options['region'] = 'IT'; 

     var container = document.getElementById('map_canvas'); 
     var geomap = new google.visualization.GeoMap(container); 
     geomap.draw(data, options); 
    }; 
</script> 

在「protoext.php」,似乎工作得很好的來源。

的主要問題是與發送該表格POST方法「性別」的值改爲「protoext.php

<form method="post"> 
    <select name="gender" onchange="this.form.submit();"> 
     <option selected>Choose</option> 
     <option value="total">total</option> 
     <option value="male">male</option> 
     <option value="female">female</option>  
    </select> 
</form> 

<div id='map_canvas'></div> 
</div> 

正如我所說的它的工作原理,但它讓我每次選擇新的時間刷新頁面價值,這是阻止我添加一些新的選擇到窗體,以改善地理過濾器 我知道,以防止刷新我必須使用AJAX,我已經嘗試了幾種方法,但它就像沒有被髮送到protoext.php。

任何人都有想法嗎?預先感謝您的回覆。

編輯

由於任何AJAX調用我做不能解決正確,我將發佈其他PHP文件(protoext.php)也許我已經得到了功能,或只是不兼容問題之間的衝突。

<?php 
$selection=$_POST["gender"]; 
$dbhost="localhost"; 
$dbuser="root"; 
$dbpass=""; 

$conn = mysql_connect($dbhost, $dbuser, $dbpass); 
if(!$conn) die ("Error Mysql: ".mysql_error()); 

$sql= "USE csv_db"; 
$ok = mysql_query ($sql, $conn); 

if(!$ok) 
    die("imposs. select DB: ".mysql_error()); 

    $sql="SELECT COD, Value 
FROM view_codes //that is the view obtained from my database 
WHERE `Age` LIKE '15+ years ' 
AND `Qualification` LIKE 'totale' 
AND `Home_Town` LIKE 'totale' 
AND `Gender` LIKE '$selection' 
AND `Period` LIKE 'T2-2012'"; 

echo "querySQL: $sql<br>"; 

$res=mysql_query($sql,$conn); 
if (!$res) 
    die ("Error query" .mysql_error()); 
?> 

編輯,更新

我也試過這種方式,但仍然不能正常工作。

<form method="post"> 
     <select name="gender" onchange="this.form.submit(
     function(){ 
     $.ajax({ 
     type: "POST", 
     url: "protoext.php",   //www.gautam.com?id=..&value1=.. 
     success:function(data){           
       alert("successfully submitted"); 
      } 
      }); 
     } 
    );"> 

我在做什麼錯?

回答

1

您可以使用Ajax

$.ajax({ 
      type: "POST", 
      url: "Your url here",   //www.gautam.com?id=..&value1=.. 
      success:function(data){           
       alert("successfully submitted"); 
      } 
      }); 
+0

我已經試過,但我不知道把,在我的代碼的方式,你可以請出示我使用上面的代碼來實現它的確切方式? –

0
$('form').on('submit', function() { 
    $.post('http://example.com', $(this).serialize(), function() { 
     // Done 
    }); 
}); 
+0

我嘗試過,但仍然沒有任何結果,每當我做出選擇時,我都會讓頁面更新。而且我仍然不明白自己做錯了什麼,我已經將該代碼放在header中作爲document.ready(),也許是我的錯誤? –

0

在你的視圖文件

<script> 
    $('document').ready(function(){ 
      $.ajax({ 
     type: "POST", 
     url: "Your url here",   //www.gautam.com?id=..&value1=.. 
     success:function(data){           
      alert("successfully submitted"); 
     } 
     }); 

    }) 
</script> 
+0

我仍然沒有得到它...我的意思是,我必須使這個腳本document.ready()或我必須把它作爲函數作爲參數在這裏:this.form.submit()? –

+0

沒有在document.ready()本身 – Gautam3164

+0

我試過這種方式,但當頁面加載說成功提交,當我在選擇表單上做出選擇時,它不提交任何內容。我要用protoext.php的代碼更新第一個主題,也許我在那裏寫錯了。 –

相關問題