从3天开始,我正在努力从Ajax& PHP,我尝试了所有教程,但我无法得到解决方案,我是Ajax,Jquery的新手,但我的问题对你们来说非常简单。
我使用jquery&amp; amp; PHP,我已经使用HTML(ul,li)创建菜单所以我想要的是,如果我点击菜单项ajax应该发送值到php变量然后执行php函数,但所有这一切应该发生在同一页面,.. < / p>
请帮我解决问题。
到目前为止,我尝试了以下内容:
JavaScript的:
<script type="text/javascript">
$("#btn").click(function() {
var val = "Hi";
$.ajax ({
url: "oldindex.php",
data: val,
success: function() {
alert("Hi, testing");
}
});
});
</script>
PHP和HTML:
<input type="submit" id="btn" value="submit">
<form name="numbers" id="numbers">
<input type="text" name="number" id="number">
</form>
<div id="number_filters">
<a href="abc">1</a>
<a href="def">2</a>
<a href="ghi">3</a>
</div>
所以,如果我点击href,我应该得到PHP变量的值它应该只在同一页面发生
答案 0 :(得分:5)
index.php
页面
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#btn").click(function() {
var val = "Hi";
$.ajax ({
url: "ajax.php",
data: { val : val },
success: function( result ) {
alert("Hi, testing");
alert( result );
}
});
});
});
</script>
<input type="submit" id="btn" value="submit">
<form name="numbers" id="numbers">
<input type="text" name="number" id="number">
</form>
<div id="number_filters">
<a href="abc">1</a>
<a href="def">2</a>
<a href="ghi">3</a>
</div>
ajax.php
页面
<?php
echo ( $_GET['val'] );
答案 1 :(得分:4)
让我们看看:
1-如果您正在进行AJAX通话,您的页面将不会刷新。因此,如果您尝试将变量发送到进行AJAX调用的同一页面,它将无法工作,这就是原因。当你能够看到页面并执行AJAX调用时,代码已经在客户端(你的web浏览器),没有PHP会被看到或执行(PHP只在服务器上执行),所以它是不可能的使用AJAX捕获和处理传递给它的变量的相同页面(因为AJAX不会刷新页面,这是AJAX的重点)。
2-如果您使用的是AJAX,则无需拨打同一页面。调用另一个PHP,它将使服务器端为您工作,然后返回结果:
success: function(data) {
alert("Hi, server returned this: "+data);
}
3-当您使用AJAX传递变量时,您必须为变量分配一个名称,因此可以在PHP端读取它:
data: {value: val},
4-对于你的问题,你没有启动AJAX调用点击一个href,你有一个AJAX函数链接到input type=submit
,它也在一个表单之外..所以让我们做这更好:
<button id="btn">submit</button>
答案 2 :(得分:1)
以下是给出示例代码的解决方案:
<?php if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
echo $_GET['q'];
exit;
} ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type='text/javascript' src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#btn").click(function(e) {
e.preventDefault();
var val = "Hi";
$.ajax ({
url: "test8.php",
// wrong query. you are not passing key , so here q is key
data: 'q=' + val,
success: function(returnResponseData) {
alert('Ajax return data is: ' + returnResponseData);
}
});
});
});
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form name="numbers" id="numbers">
<input type="text" name="number" id="number">
<input type="submit" name='button' id="btn" value="submit">
</form>
</body>
</html>