自动选择和 jQuery post 不能一起工作
Posted
技术标签:
【中文标题】自动选择和 jQuery post 不能一起工作【英文标题】:Autoselect and jQuery post doesnt work together 【发布时间】:2013-03-20 17:44:58 【问题描述】:我的代码还有另一个问题。
<script type="text/javascript">
$("#wojewodz").change(function()
var id_wojewodztwa = $("#wojewodz").children(":selected").attr("id");
$.post("miasta.php", id_wojewodztwa: id_wojewodztwa );
$('#powiat_miasto_auto_complete').autocomplete(source:'miasta.php', minLength:2);
);
</script>
这是获取所选选择的 ID 并将其传输到 miasta.php 的函数
$options = array(
PDO::mysql_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);
try
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass, $options);
catch(PDOException $e)
echo $e->getMessage();
$return_arr = array();
if (($conn) and (isset($_GET['id_wojewodztwa'])))
$id_wojewodztwa = $_GET['id_wojewodztwa'];
$ac_term = "%".$_GET['term']."%";
$query = "SELECT DISTINCT nazwa FROM podzial_tm where woj='$id_wojewodztwa' and nazdod!='województwo' and nazwa like :term LIMIT 10";
$result = $conn->prepare($query);
$result->bindValue(":term",$ac_term);
$result->execute();
/* Retrieve and store in array the results of the query.*/
while ($row = $result->fetch(PDO::FETCH_ASSOC))
$row_array['value'] = $row['nazwa'];
array_push($return_arr,$row_array);
/* Free connection resources. */
$conn = null;
/* Toss back results as json encoded array. */
echo json_encode($return_arr);
?>
谁能告诉我哪里出了问题? 当我将“ where woj='$id_wojewodztwa'”更改为例如“ where woj='26'”并删除“ and (isset($_GET['id_wojewodztwa']))”时,一切正常,所以我认为我有问题使用 POST
复活节快乐! :)))
【问题讨论】:
【参考方案1】:您正在发布数据。您需要在 $_POST['id_wojewodztwa']
中查找您要查找的值,而不是在 $_GET
中。
【讨论】:
等一下......当我将数据发布到 miasta.php 时,我必须在 miasta.php 中获取它吗?我说的对吗? @DawidGórecki 您正在使用 jquery 帖子$.post("miasta.php"
$_GET
保存通过 URL 查询字符串传递给 PHP 的 HTTP GET 请求的值。当数据以表单编码方式发布时,$_POST
保存为 HTTP POST 请求传递给 PHP 的值。 POST 数据位于$_POST
。这是 PHP 101,所以你应该去 PHP 站点阅读这些超全局变量是如何填充的。此外,听起来您应该阅读基本 HTTP 协议以了解 GET 和 POST 之间的区别(以及其他动作动词,如 PUT 和 DELETE,它们通常不被浏览器使用,但对于了解现代 RESTful Web 服务很有用)
@MikeBrant,我认为你错了,我们可以使用$_GET
@Amir 您可以使用 HTTP GET 来执行此操作,但您的代码示例显示您使用 POST(通过 $.post()
方法)。【参考方案2】:
$.post("miasta.php", id_wojewodztwa: id_wojewodztwa );
到
$.get("miasta.php", id_wojewodztwa: id_wojewodztwa );
或者如果你必须赶上结果,使用:
$.get("miasta.php", id_wojewodztwa: id_wojewodztwa ,function(result)
/** some code here */
,'json');
更新:
如果您使用 $.post,请编辑以下行:
if (($conn) and (isset($_POST['id_wojewodztwa'])))
$id_wojewodztwa = $_POST['id_wojewodztwa'];
【讨论】:
我有 $.post("miasta.php", id_wojewodztwa: id_wojewodztwa );而$id_wojewodztwa = $_POST['id_wojewodztwa'];,自动补全还是没有结果。【参考方案3】:删除isset($_GET['id_wojewodztwa'])
,同时修改$id_wojewodztwa = intval($_GET['id_wojewodztwa']);
【讨论】:
以上是关于自动选择和 jQuery post 不能一起工作的主要内容,如果未能解决你的问题,请参考以下文章
select2 和sheepit jquery 插件不能一起工作
jquery Chosen 和 mCustomScrollbar 不能一起正常工作
如何将 jquery-ui 的自动完成选择映射到 POST 上的 Java 类