通过PHP将Javascript变量的值传递给MySQL


Pass value of Javascript variable to MySQL through PHP

我想通过PHP将从下拉菜单中选择的区域名称传递到MySQL的查询中。我在JavaScript中检索了名称,但无法将值从JavaScript存储到PHP。我的代码如下

<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>

您需要发布您的表单。该值将在$_POST['cmbArea']中可用。

如果我理解正确,我会在这种情况下使用AJAX。类似于以下内容:http://openenergymonitor.org/emon/node/107

是的,您不能将值从javascript"存储"到PHP,因为javascript在客户端(实际上在浏览器端),而不是在服务器端。

您需要使用ajax发布数据(Jquery-ajax可能是),并以JSON格式发布数据。检查此线程。。

PHP将在服务器上运行,然后javascript将在浏览器上运行。因此,当你尝试时,你不能在同一页上同时做这两件事。

我认为最好的方法是提交表单,并使用PHP读取其中的值。在那里您可以执行查询。

如果你不想提交,你可以检查AJAX,它会发送一个异步服务器端请求,而不刷新网页。