将值从HTML表单传递给php变量

时间:2017-07-05 20:04:58

标签: php html mysql

我正在尝试从HTML表单传递一个值并将其存储到php变量中,因此我可以将此变量用于查询以确定从数据库获取的行。我正在使用_post ['category']来获取所选值,并且我将变量传递给查询以获得所需的行但是到目前为止我没有得到任何帮助。这是我到目前为止写的:

<form method="post" action="a34.php">                                                                    
 <select name="category">
  <option value="6008">15</option>
  <option value="6018">25</option>
  <option value="6034">30</option>
  <option value="6038">40</option>





$V=$_POST['category'];

$getrow= "SELECT ProdID, 
ProdCatID, ID_AC_seperate, ProdImage,
 ProdName, ProdPrice, ProdShippingPrice, 
ProdShortDesc, ProdMediumDesc, suitable, 
cart_thumb FROM accessories WHERE ProdID = '$V'";

2 个答案:

答案 0 :(得分:0)

我建议您使用strip_tags功能。切勿将原始数据放入sql。

所以

If(isset($_POST['category']) {
    $data = strip_tags ($_POST['category']);

    $getrow= "SELECT ProdID, ProdCatID, ID_AC_seperate, ProdImage,
                     ProdName, ProdPrice, ProdShippingPrice, 
                     ProdShortDesc, ProdMediumDesc, suitable, cart_thumb
              FROM accessories 
              WHERE ProdID = '. $data .'";
}

答案 1 :(得分:0)

好的,请尝试以下方法。

JS文件检测用户何时单击某个选项,并使用$_POST变量val向updateRow.php文件发送ajax请求。

updateRow.php获取$_POST变量并将其转换为整数。然后使用该变量更新查询。处理查询,然后处理echoprint等所需HTML格式的数据。否则,数据回显失败&#39;。

然后将回显,打印等输出发送回变量data下的JS文件。如果数据等于“失败”,则输出错误消息。否则,它会在#row元素中插入HTML。

// ------ Your JS file ---------

$(function() {
  $row = $("#row");

  $("#update-row").on("change", function() {
    var val = $("select option:selected", this).val();
    $.post('updateRow.php', {
      val: val
    }, function(data) {
      if (data == 'failure') {
        $row.text("Sorry, the row does not exist");
      } else {
        $row.html(data);
      }
    });
  });
});
//------- updateRow.php ---------
//Make sure path/to/updateRow.php in the JS file is updated to here

$V = (int) $_POST['val'];

$getrow = "SELECT ProdID, 
ProdCatID, ID_AC_seperate, ProdImage,
ProdName, ProdPrice, ProdShippingPrice,
ProdShortDesc, ProdMediumDesc, suitable,
cart_thumb FROM accessories WHERE ProdID =" . $V;

if ( QUERY_IS_SUCCESSFUL() ) {
  echo 'The <b>HTML</b> you want to display the data in';
} else {
  echo 'failure';
}
<!----- HTML file ---->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="path/to/js/file.js"></script>

<form method="post" action="a34.php" id="update-row">
  <select name="category">
    <option value="6008">15</option>
    <option value="6018">25</option>
    <option value="6034">30</option>
    <option value="6038">40</option>
    </select>
</form>

<div id="row"></div>