<script type="text/javascript">
$(document).ready(function () {
$(".Categories").click(function () {
var catId = $(this).attr('id');
catId = String(catId);
jQuery.ajax({
url: "index.php",
data: { catId },
type: "POST",
success: function (data) {
$("#categoryField").html(data);
}
});
});
});
</script>
我需要将单击的按钮id
传递到同一index.php
页面,而无需刷新页面并使用该id
值。我的代码是错误的,因为页面是第二次呈现的。
这是我的 php 代码:
<?php
$category=$user_home->runQuery("SELECT DISTINCT category FROM products");
$category->execute();
$categoryArray=$category->fetchAll(PDO::FETCH_ASSOC);
foreach($categoryArray as $listID){
?>
<input type="button" id="<?php echo $listID['category']?>" class="Categories" value="<?php echo $listID["category"]?>"/><br>
<?
}
?>
在按钮click
事件处理程序中调用preventDefault
方法以防止默认按钮行为(">页面第二次呈现"(:
...
$(".Categories").click(function (e) {
e.preventDefault();
...
代码中存在语法错误
$(document).ready(function () {
$(".Categories").click(function () {
var catId = $(this).attr('id');
catId = String(catId);
jQuery.ajax({
url: "index.php",
data: { catId: catId },
type: "POST",
success: function (data) {
$("#categoryField").html(data);
}
});
});
});
您必须以有效的文本对象格式传递数据。{"property_name": "property_value"}.
更改: data: { catId }to data: { "catId": catId }
对于服务器端:
<?
if (isset($_POST['catId'])) {
/* YOUR CODE FOR CATEGORY */
$catId = intval($_POST['catId']);
echo 'SUCCESS';
exit(0);
}
// YOU OTHER PHP CODE
?>
我想
我需要将我的变量发布到另一个页面,然后将其返回。我不知道如何在同一页面中执行此操作。这个带有 exit(0)
的变体是不好的,因为 exit(0)
之后if
语句中的所有变量都将被删除。
<?
if (isset($_POST['catId'])) {
/* YOUR CODE FOR CATEGORY */
$catId = intval($_POST['catId']);
echo 'SUCCESS';
exit(0);
}
// YOU OTHER PHP CODE
?>