首页 > 解决方案 > 为什么这个 ajax 脚本不发送数据

问题描述

我正在尝试将 js 变量发送到 php 文件,以创建查询。这是我的脚本,但它不起作用,你能帮帮我吗?

<select class="form-control" id="Input_Cli" name="Input_Cli" onchange="sendtophp()">
    <option disabled selected value> Seleziona il cliente</option>
    <?php
       $results = pg_query($conn, "SELECT piva, nome FROM cliente");
       while($row = pg_fetch_array($results)) { ?>
            <option value="<?php echo $row['piva']?>"><?php echo $row['nome']?></option>
    <?php
       }
    ?>
</select>
<script type="text/javascript">
function sendtophp()  { 
    var cli = document.getElementById("Input_Cli").value;
    document.getElementById("prova").innerHTML = cli;
    $.ajax({
        url: "C:\xampp\htdocs\Progetto\getlist.php"
        type: "GET"
        data: {Cli : cli}
        success: function( )
        {
            alert("success!");
        }
    });
} 
</script>

标签: javascriptphpjqueryjsonajax

解决方案


我刚刚对此进行了测试,您的脚本运行良好。您的 PHP 输出选项一定有错误,或者您只是调用了错误的 url,我们无法检查。

如果我更改选择框,则以下代码段与您的 PHP(与 html 文件位于同一目录中的 test.php)在有效服务器上将返回 1。

确保您实际上是在浏览器中打开网络服务器上的页面,而不是本地文件。

出于此代码段的目的,我将 url 更改为我们可以在此处实际验证的内容。

function sendtophp() {
  var cli = document.getElementById("Input_Cli").value;

  $.ajax({
    url: "https://jsonplaceholder.typicode.com/posts/1",
    type: "GET",
    data: {
      Cli: cli
    },
    success: function(data) {
      console.log(data);
    }
  });
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<select class="form-control" id="Input_Cli" name="Input_Cli" onchange="sendtophp()">
  <option disabled selected value> Seleziona il cliente </option>
  <option>some option</option>
</select>


推荐阅读