【问题标题】:how to pass value to query in same page in php? [duplicate]如何在php的同一页面中将值传递给查询? [复制]
【发布时间】:2017-08-21 05:41:42
【问题描述】:

我有一个下拉框

<select>
<option value=1>A</option>
<option value=2>B</option>
</select>

在 php 代码中我有一个查询

<?php $sql='select * from table where id='.'SELECTOPTIONVALUE' ?>

我需要在 where 子句中传递选定的值 (id=SELECTOPTIONVALUE) 如何从下拉菜单中的 where 子句中传递值...任何帮助..

谢谢,

纳瓦兹

【问题讨论】:

  • 这段代码对你的服务器来说是非常危险的,因为你直接将一个变量注入到你的查询中。请考虑使用 PDO 代替对变量的这种处理,此代码使您面临潜在的 SQL 注入,即使在尝试将变量传递到其他页面之前也应避免这种情况;)
  • 将 sql 代码和 html 代码放在同一页面上并不是最佳做法。将它们分开并使用ajax或表单提交事件来传递下拉列表的选定值

标签: javascript php html mysql


【解决方案1】:

我认为下面的代码可以帮助您解决问题

 <?php 
    $sql = 'select * from table where id = '.$_GET['selected'].' ' ;
    ?>
    <select name="selected" id="model">
        <option value="">Select</option>
        <option value="1" <?php if($_GET['selected'] == 1) echo 'selected';?> >A</option>
        <option value="2"  <?php if($_GET['selected'] == 2) echo 'selected';?>>B</option>
    </select>
    <script type="text/javascript">
        var select = document.getElementById("model");
        select.onchange = function(){
            var selectedString = select.options[select.selectedIndex].value;
            window.location = "http://localhost/stack/stack-q/2.php?selected="+selectedString;
        }
    </script>

【讨论】:

  • 表单未提交
  • 那你需要javascript
  • 请编辑您的答案以修复此错误:&lt;?php $sql='select * from table where id = $_POST['selected'] ?&gt; 不起作用,应该类似于 &lt;?php $sql="select * from table where id = {$_POST['selected']}"; ?&gt;
  • @Barclick Flores Velasquez ...那是怎么回事?
  • 您的选择查询和表单在同一页面还是不同页面? @NawazAhmed
猜你喜欢
  • 1970-01-01
  • 2011-12-02
  • 2021-12-26
  • 2018-02-03
  • 1970-01-01
  • 2019-11-30
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多