当前位置: 首页 > 知识库问答 >
问题:

使用AJAX将表单输入发布到PHP以满足多个自动完成查询条件

冯阳成
2023-03-14

我在输入表单“city”上使用jquery autocomplete,但我希望在“autocity”中使用该查询。php'文件,仅建议预选国家/地区的城市,即城市如“%$term%”和CountryID=“%$code>。表单操作提交使用单独的php文件(create business.php)将表单数据插入数据库,以便通常的$_POST['Countries\u CountryID']在autocity.php中不起作用。这就是我现在使用AJAX向autocity.php发布“country”的原因。另外,如果能够从autocity.php文件中回显/alert/print\r,这样我就可以确认来自AJAX发布的$_post['$country']到达autocity.php文件,那将是一件非常棒的事情。

表单里有两个输入框

<pre>`
<form id="input" action="php/create-business.php" method="post">
<select name="Countries_CountryId" id="country">
<input type="text" id="city" name="City">`
</pre>

这是表单中的脚本

<script>
$(function () {
var country = $("#country").val();
$.ajax({
type:"POST", url:"autocomplete/autocity.php", data:"country",         
beforeSend:function () {
// alert(country);
}, complete:function () {  // is there any need for this?
}, success:function (html) {  // is there any need for this too?
}
});

$("#city").autocomplete(
             {
             source:'autocomplete/autocity.php'
             })
    });
</script>

这就是独裁。php

`
//database connection works fine and autocomplete 
//suggestion works without the AND CountryID = '%$country%' part.  

    $country = "";
    if (isset($_POST['country'])) {
    $country = trim($_POST['country']);}
    echo "window.alert($country);"; //This did nothing no alert

    $term = $_REQUEST['term'];
    $req = "SELECT City
            FROM cities
            WHERE City LIKE '%$term%' AND CountryID = '%$country%'";

    $query = mysql_query($req);
    while ($row = mysql_fetch_array($query)) {
        $results[] = array('label' => $row['City']);
    }
    echo json_encode($results);
    ?>`
    

因此,问题基本上是:

1-如何在应用程序中使用AJAX从表单输入的文本。用于查询不是提交表单操作的MySQL数据库的php文件。php文件

2-当ajax被用来显示php文件收到我的ajax帖子时,我如何从PHP文件中提醒post变量。在我短暂的经验中,回声和print_r只在表单提交上工作,当网页发生变化时,显示表单提交的结果。

3-我的语法如何?

非常感谢你提前帮助这个新手: D

好的,这是我尝试过的最新情况。我想我很接近了。我正在使用jqueryui-//ajax。古格里皮斯。com/ajax/libs/jqueryui/1.10。0/jqueryui。min.js

下面是脚本方法1:

   $(document).ready(function () {
    var country = $('#country').value();
    alert(country + " complete");
    $("#city").autocomplete(
          {
            source:'autocomplete/autocity.php?country='+country,
            minLength:1
           });
        });

下面是脚本方法2:

 $(document).ready(function () {

    $('#city').autocomplete({
        // source: function() { return "GetState.php?country=" + $('#Country').val();},
        source:function (request, response) {
            $.ajax({
                url:"autocomplete/autocity.php",
                //dataType:"json",
                data:{
                    term:request.term,
                    country:$('#country').val()
                },
                success:function (data) {
                    response(data);
                }
            });
        },
        minLength:2
    });
  });

我更喜欢方法2,因为它允许我添加多个参数

最后这是我最新的autocity.php代码

 <?php
    $term = $_REQUEST['term'];
    $country = $_REQUEST['country'];
    $req = "SELECT City
    FROM cities
    WHERE City LIKE '%$term%' AND CountryID = '%$country%' ";

    $query = mysql_query($req);

    while ($row = mysql_fetch_array($query)) {
    $results[] = array('label' => $row['City']);
    }

    echo json_encode($results);
     ?>

不过我还是完全被卡住了。有人能看到代码的问题吗?我在网上到处寻找正确的语法。再次感谢

共有1个答案

蒋联
2023-03-14

对于第一个问题,您的方法基本上是正确的。您可以绑定到特定字段的模糊事件,并使用您的函数获取该字段的值,并以您正在执行的方式提交到php脚本。$。blur()就是您要找的。

对于第二个问题,error_log函数将把内容写入php的错误日志。如果使用print_r将变量转储到此日志,请确保将print_r的第二个参数设置为true,以输出结果作为返回值。

 类似资料:
  • 问题内容: 我将不胜感激创建此查询的任何帮助。我尝试了好几种方法,但都没有碰到运气。由于我的问题很难表达,因此我将举一个我想做的简单例子。我的数据在结构上类似于以下内容: 如果我有两种特定颜色的ID,我想创建一个查询以返回类型。例如,我想查找所有具有蓝色和红色的ID。然后查询将返回: A和B的返回顺序并不重要。数据集很大,我希望有许多ID可以同时满足这两个条件(也许是50,000个左右)。我要指出

  • 问题内容: 我需要让用户输入一个数字以用作范围的开始,然后输入另一个数字作为范围的结束。起始编号必须为0或更大,结束编号不能大于1000。两个数字都必须被10整除。我找到了满足这些条件的方法,但是如果不满足这些条件,我的程序只会告诉用户他们的输入不正确。我是否可以对它进行编码,以便在用户输入后进行检查以确保满足条件,如果条件没有环回,请再次输入。这是我到目前为止的代码。 问题答案: 轻松做:

  • 我需要要求用户输入一个数字作为范围的开始,然后输入另一个数字作为范围的结束。开始数必须大于等于0,结束数不能大于1000。两个数字都必须能被10整除。我已经找到了满足这些条件的方法,但是如果不满足这些条件,我的程序只会告诉用户他们的输入不正确。我是否可以对其进行编码,以便在用户输入后,它将检查以确保满足条件,如果不满足条件,则返回并再次输入。这是我目前掌握的代码。

  • 问题内容: 也许您可以解决一些Ajax问题。 我有AUTO COMPLETE代码-我输入城市名称,该代码会自动为我完成城市名称,还获取城市ID,并应将其放入隐藏的输入字段中(名称=“ cityID”)…但它没有做到这一点。 你能告诉我为什么吗? html代码: 服务器端(仅输出): 脚本: 您可以在这里找到完整的JS: 问题答案: 尝试对ajax_response_city使用div而不是span

  • 我有搜索输入以及下拉存储为li元素。如何向搜索标签添加自动完成功能,从li标签获取数据,并在搜索输入中显示相应的结果。 自动完成程序应从ul li标签中提取内容并执行操作。可以通过li搜索输入标签完成吗?

  • 问题内容: 我有一个简单的php文件,它可以解码我的json字符串,并与ajax一起传递并标记结果,但是我不能保留变量,为什么? 我尝试使用fireBug进行检查,我可以看到POST请求已正确发送,当调用 php 脚本时,他对我做出了Noooooooob的响应,似乎已设置了任何POST变量。 我想要的就是拥有我的数组=) JSON字符串由生成: 的JavaScript save_categorie