2013-02-18 129 views
0

我想通過PHP將下拉菜單中選擇的區域名稱傳遞給MySQL。我在JavaScript中檢索了名字,但是我無法將JavaScript中的值存儲到PHP中。我的代碼如下通過PHP將Javascript變量的值傳遞給MySQL

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title></title> 
    <script> 
     function getIndex() 
     { 
      var x=document.getElementById("cmbArea").selectedIndex; 
      var y=document.getElementById("cmbArea").options 

      var z= y[x].text; 
      alert(z); 
     } 
    </script> 
</head> 
<body> 
    <form name ="form1" action="Demo1.php" method="post"> 
    <select id="cmbArea" name="cmbArea"> 
    <?php 
    include 'Connect.php'; 
    $query = "SELECT varAreaName FROM tbArea" ; 
    $result = mysql_query($query);  
    while($row = mysql_fetch_assoc($result)) { 
     echo '<option value="'.$row['varAreaName'].'">' . $row['varAreaName'] . '</option>'; 
    } 

    ?> 
    </select> 
    </form> 
    <input type="Button" onclick="getIndex()" value="Alert index of selected option"> 

    </body> 
    </html> 
+2

這是創建將數據發佈到PHP的表單(及其選擇)的HTML/PHP。我們需要看到另一面拿起$ _POST – Popnoodles 2013-02-18 19:30:58

+0

您需要提交表單以讀取服務器上的值。 – 2013-02-18 19:31:32

+0

不要再使用'mysql_ *'函數,它們已被棄用(參見[red box](http://php.net/mysql_query))。此外,你可以顯示你的'Demo1.php'嗎? – 2013-02-18 19:34:08

回答

0

您需要發佈您的表單。該值將在$_POST['cmbArea']中提供。

0

是的,你不能'存儲'從JavaScript值到PHP,因爲JavaScript是在客戶端(字面上在你的瀏覽器端),而不是在服務器端。

您需要使用ajax發佈數據(可能是jquery ajax),並以JSON格式發佈。 Check this thread..

0

PHP將在服務器上運行,然後JavaScript將在瀏覽器上運行。所以你不能在同一頁面上做這兩件事,就像你嘗試的那樣。

我認爲最好的方法是提交表單,並使用PHP讀取值。在那裏你可以執行你的查詢。

如果您不想提交,您可以檢查AJAX,它將發送異步服務器端請求,而不刷新網頁。