【问题标题】:how to send a value from php select option to another php page using ajax?如何使用 ajax 将值从 php 选择选项发送到另一个 php 页面?
【发布时间】:2016-12-22 17:28:22
【问题描述】:

我正在创建一些网站,它有 2 个选择选项菜单,第一个选择国家,第二个选择国家,还有一个使用 ajax 进行实时搜索的搜索栏。 状态菜单是从某个 php 文件中填充的,因为我使用 ajax 将所选国家/地区发送给它。

我想要的是使用 ajax 将所选选项的 ID 从状态菜单发送到另一个 php 页面,这样如果我选择阿拉巴马州并单击搜索栏并开始输入一些阿拉巴马州城市的字母,它只推荐阿拉巴马州的城市

这是我的 ajax 代码:

<script> 
function getCity(val){
            //var vall = document.getElementById('gadget').value;
    $.ajax({
        type: "POST",
        url: "ajax/city.php",    
        data:'q='+$(this).val(),
        success: function(data){
        $("#suggesstion-box").show();
                    $("#suggesstion-box").html(data);
                    $("#search-box").css("background","#FFF");
        }
    });

}
</script>

这是状态菜单:

  <select class="form-control" id="txtHint" style="width:120%;" onchange="getCity(this.value)">
     <option value="-1"> Select State &nbsp;&nbsp; </option>
</select>

这是 AJAX 文件中的代码:

<?php
if (!empty($_POST["q"])) {
  if(!empty($_POST["keyword"])) {
    $query ="SELECT `city`,`state_code` FROM `cities` WHERE `S_code` = '".$_POST["q"]."' AND `city` LIKE '" . $_POST["keyword"] . "%' ORDER BY city LIMIT 0,6";

    $result = mysql_query($query) ;
        if(!empty($result)) {
?>

<ul id="country-list">

<?php
            while($row = mysql_fetch_array($result)) {
?>

<li onClick="selectCountry('<?php echo $row["city"]; ?>');"><?php echo $row["city"]." ,".$row["state_code"]; ?></li>

<?php 
            } 
?>
</ul>
<?php
        } 
     } 
  }
?>

q 值好像是空的

【问题讨论】:

  • 你为什么要连接来自 phpli 元素?应该是&lt;option&gt;吧?
  • 否,因为这些会作为建议出现在搜索栏下方

标签: javascript php html ajax web


【解决方案1】:

你必须使用 data:'q='+val 因为 $(this).val() 在函数内部是不可访问的

【讨论】:

    【解决方案2】:

    以这种方式尝试您的 ajax 代码:

    <script> 
    function getCity(val){
                //var vall = document.getElementById('gadget').value;
        $.ajax({
            type: "POST",
            url: "ajax/city.php",    
            data:{q:val},
            success: function(data){
            $("#suggesstion-box").show();
                        $("#suggesstion-box").html(data);
                        $("#search-box").css("background","#FFF");
            }
        });
    
    }
    </script>
    

    【讨论】:

    • 什么也没发生,我猜问题出在 php 文件中,因为当我回显 $_POST["q"];我得到一个错误 undeined index q 并且当我在 SQL 本身中替换它时,当我删除 $_POST["q"] 并放入 1 例如它可以工作
    【解决方案3】:

    尝试使用这样的值,

     <script> 
      function getCity(val){
            //var vall = document.getElementById('gadget').value;
        $.ajax({
            type: "POST",
            url: "ajax/city.php",    
            data:'q='+val,
            success: function(data){
            $("#suggesstion-box").show();
                    $("#suggesstion-box").html(data);
                    $("#search-box").css("background","#FFF");
            }
        });
    
    }
    </script>
    

    或者像这样使用值,

    <script> 
          function getCity(val){
    
            $.ajax({
                type: "POST",
                url: "ajax/city.php",    
                data:'q='+document.getElementById('txtHint').value,
                success: function(data){
                $("#suggesstion-box").show();
                    $("#suggesstion-box").html(data);
                    $("#search-box").css("background","#FFF");
                }
            });
    
        }
        </script>
    

    【讨论】:

    • 什么也没发生,我猜问题出在 php 文件中,因为当我回显 $_POST["q"];我得到一个错误 undeined index q 并且当我在 SQL 本身中替换它时,当我删除 $_POST["q"] 并放入 1 例如它可以工作
    猜你喜欢
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    相关资源
    最近更新 更多