<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>
<?
}
?>
答案 0 :(得分:0)
在按钮preventDefault
事件处理程序中调用click
方法以防止默认按钮行为(&#34; 页面第二次呈现&#34;):
...
$(".Categories").click(function (e) {
e.preventDefault();
...
答案 1 :(得分:0)
您的代码中存在语法错误
$(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”}。
更改:数据:{catId} 到数据: {“catId”:catId}
对于服务器端:
<?
if (isset($_POST['catId'])) {
/* YOUR CODE FOR CATEGORY */
$catId = intval($_POST['catId']);
echo 'SUCCESS';
exit(0);
}
// YOU OTHER PHP CODE
?>
答案 2 :(得分:0)
我想我需要将我的变量发布到另一个页面然后返回它。我不知道如何在同一页面中执行此操作。exit(0)
的此变体很糟糕,因为if
语句中的所有变量都是错误的exit(0)
之后将被删除。
<?
if (isset($_POST['catId'])) {
/* YOUR CODE FOR CATEGORY */
$catId = intval($_POST['catId']);
echo 'SUCCESS';
exit(0);
}
// YOU OTHER PHP CODE
?>