【问题标题】:Ajax Post and retrieve multiple variablesAjax Post 和检索多个变量
【发布时间】:2019-02-18 01:03:59
【问题描述】:

我需要有关如何使用 Ajax Post 发布和检索多个变量的帮助。我实际上需要为 SQL 查询检索已发布的变量。请参阅下面的 Ajax 代码,其中我需要在帖子中包含变量名称 selschool、selprogram、selsession

<script>

    $("#session").change(function()
    {
        $("#loding2").show();
        var id=$(this).val();
        var dataString = 'id='+ id;
        var selschool=document.getElementById("selectedschool").val();
        var selprogram=document.getElementById("selectedprogram").val();
        var selsession=document.getElementById("selectedsession").val();

        $("#semester").find('option').remove();
        $("#class").find('option').remove();
        document.getElementById("selectedclass").value= " ";
        document.getElementById("selectedsemester").value= " ";
        $.ajax
        ({
            type: "POST",
            url: "get_class.php",
            data: dataString,
            cache: false,
            success: function(html)
            {
                $("#loding2").hide();
                $("#class").html(html);
            }
        });
    });

</script>

另请参阅下面的 PHP 脚本,我想在其中使用发布的变量进行查询;

 <?php
include('dbconfig.php');
if($_POST['id'])
{
    $id=$_POST['id'];

//  Todo: I actually needed something like where session SELECT * FROM class where session_id=$id and program_id="selprogram" and school_id="selschool"
    $stmt = $DB_con->prepare("SELECT * FROM class where session_id=$id ");
    $stmt->execute(array(':id' => $id));

    ?><option selected="selected">Select Class :</option>
    <?php while($row=$stmt->fetch(PDO::FETCH_ASSOC))
    {
        ?>
        <option value="<?php echo $row['class_id']; ?>"><?php echo $row['class_name']; ?></option>
        <?php
    }
}
?>

【问题讨论】:

  • data: {id: id, selprogram: selprogram, selschool: selschool},
  • @Jeff 你打败了我嘿嘿
  • 我对 php 不是很流利,但看起来这也会造成 SQL 注入漏洞,除非 PDO::FETCH_ASSOC 有什么魔法?
  • 谢谢 Jeff,但我将如何从他的 PHP 页面访问变量?

标签: javascript php html arrays ajax


【解决方案1】:

让我解释一下解决方案 考虑对 demo.php 的 ajax 调用

$.ajax({
  url: 'demo.php',
  type: 'post',
  data: {
    'name': 'abc',
    'phone': '1234567899'
  }, //data is in json form
  success: function(res) {
    console.log(JSON.parse(res)); //parsing because we will pass the data from demo.php in encoded form you will get it.
  }
});

现在在 demo.php 中,您将以 $_POST['name'] 和 $_POST['phone'] 的形式访问数据。让我们将其传递给 ajax 调用。将它存储在数组中并传递它。

<?php
  $Arr = [];
  $Arr[0] = $_POST['name'];
  $Arr[1] = $_POST['phone'];
  echo json_encode($Arr); 
?>

这样,我们可以将数据传递给 ajax,也可以将 PHP 文件中的数据传递给请求。 希望你得到结果。谢谢。

【讨论】:

    猜你喜欢
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多