繁体   English   中英

如何在不刷新的情况下将选择的值从Javascript / Ajax解析为PHP

[英]How to Parse Select Value from Javascript / Ajax to PHP without Refreshing

我正在尝试从MYSQL数据库检索数据。

我想使Select值通过JavaScript / Ajax进入PHP ,但是我不知道如何用POST方法解析该值。

我的代码:HTML选择:

<select id="valueSelectBox" name="valueSelect">
              <option value="defaultPlaceholder">Select Value</option>
              <option class="value1">Value 1</option>
              <option value="value2">Value 2</option>
              <option value="value3">Value 3</option>
              <option value="value4">Value 4</option>

            </select>

JavaScript:

<script>
$(document).ready(function() {
  $('#valueSelectBox').change(function() {
    var valueNum=$(this).val();

  $.get("php/getValue.php?valueNum="+valueNum, function(data){
      $('#show').html(data);

    });
    });
});

</script>

PHP:

<?php
        include_once('mysql_conn.php');

  $valueNum = $_POST["valueNum"];

        $sql = "SELECT * FROM `values` WHERE `valueNo` = '"$valueNum"'";
        $result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "<b>Value:</b> " . $row["valueNo"];

    }
} else {
    echo "Value Not Found.";
}
?>

但是PHP代码$_POST最终为null

另外,当我尝试对其进行测试时,也会发生以下错误:

Parse error: syntax error, unexpected '$valueNum' (T_VARIABLE) in /Applications/XAMPP/xamppfiles/htdocs/html/php/getValue.php on line 13

提前致谢。

您正在发送GET请求而不是POST

使用JQuery ajax()函数并将其method参数设置为POST

$.ajax({
  method: "POST",
  url: "php/getValue.php",
  data: { values: valueNum }
})
.done(function(data) {
  $('#show').html(data);
});

您也可以使用get方法获取该数据。 问题出在您的JavaScript中,您正在传递变量名“ valueNum”。

这是这一行-> $ .get(“ php / getValue.php?valueNum =” + valueNum

但是在您的php脚本中,您正在使用$ _POST [“ values”]。

这行是-> $ valueNum = $ _POST [“ values”];

因此,只需将$ _POST [“ values”]更改为$ _GET [“ valueNum”],它也将起作用。

可以,我找到了解决方案,原来是我的SQLQuery抛出错误,原因是两个引号(“”)以及(''),而不是实际的GET方法。

我变了:

$sql = "SELECT * FROM `values` WHERE `valueNo` = '"$valueNum"'";

至:

$sql = "SELECT * FROM `courses` WHERE `courseNo` = '$valueNum'";

无论如何,谢谢你们!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM