如何使用 jQuery 的 $.ajax() 函数来运行 php 脚本? [复制]
Posted
技术标签:
【中文标题】如何使用 jQuery 的 $.ajax() 函数来运行 php 脚本? [复制]【英文标题】:How can I use jQuery´s $.ajax() function to run php script? [duplicate] 【发布时间】:2015-05-31 14:55:57 【问题描述】:为了便于理解,我制作了一个示例代码,因为我的实际代码要大得多。
基本上,我想要完成的是运行我的 php 脚本,该脚本使用 ajax 编辑 XML 文件。这是因为我需要在我的实际项目中的 javascript 中执行此操作。
这是我目前所拥有的:
包含 ajax 函数的 .php 文件:
<!DOCTYPE html>
<html>
<head>
<script>
function editXMLDoc()
$.ajax(
url: "sensors.php",
context: document.body
).done(function()
$( this ).addClass( "done" );
);
</script>
</head>
<body>
<button type="button" onclick="editXMLDoc()">Endre XML</button>
</body>
</html>
这是写入 xml 的 php 脚本:
<?php
include 'sensor.php';
$b=new sensor();
$arr=$b->load('sensor.xml');
for($i=0,$ms=count($arr);$i<$ms;$i++)
if($arr[$i]['fields']['status']=='1')
$arr[$i]['fields']['status']='0';
else
$arr[$i]['fields']['status']='1';
echo "Completed<br/>";
//3. save array to xml
$b->save('sensor.xml',$arr);
?>
我知道脚本正在运行,所以我很确定问题是 ajax 函数和 php 脚本之间的连接。
谁能帮帮我?
【问题讨论】:
在 Ajax 中,您使用函数 sensors.php 但 php 文件称为 sensor.php。或者带有脚本的文件叫做sensors.php? 不,不是。 php 文件包括另一个名为 sensor.php 的 php 文件。我知道这可能会让人感到困惑。 @user2927356:这是否也回答了您之前的问题***.com/q/29278936/367456? 【参考方案1】:试试这段代码...实际上你没有附加 jQuery 库。
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
jQuery(document).ready(function($)
var resp = $("#response");
$.ajax(
type: "POST", // Method type GET/POST
url: "sensors.php", //Ajax Action url
data: ,
// Before call ajax you can do activity like please wait message
beforeSend: function(xhr)
resp.html("Please wait...");
,
//Will call if method not exists or any error inside php file
error: function(qXHR, textStatus, errorThrow)
resp.html("There are an error");
,
success: function(data, textStatus, jqXHR)
resp.html(data);
);
);
</script>
</head>
<body>
<div id="response"></div>
</body>
</html>
【讨论】:
哈利路亚!非常感谢!【参考方案2】:像这样使用 AJAX:
<script type="text/javascript">
jQuery(document).ready(function($)
$('.rt11').click(function()
$.ajax(
type: "POST", // Method type GET/POST
url: "sensors.php", //Ajax Action url
data: yourKey: "yourValue", yourKey1: "another value",
// Before call ajax you can do activity like please wait message
beforeSend: function(xhr)
console.log("Please wait...");
,
//Will call if method not exists or any error inside php file
error: function(qXHR, textStatus, errorThrow)
console.log("There are an error");
,
success: function(data, textStatus, jqXHR)
console.log(data);
);
);
);
</script>
【讨论】:
好的,但是如何用按钮调用这个函数呢? 在您的 ajax 调用中,您不需要“data”、“beforeSend”和“type”属性来使其更简单。如果它返回一个xml文件,添加dataType:“xml”。 在 $('.rt11').click(function() 中传递您的元素选择器 CLASS 或 ID @Sateesh 很抱歉我太笨了,但是当你说把它传进去时,我该怎么做。认为它会是这样的: 我的意思是你正在使用 class="rt11" 并且这个类已经 $(".rt11") 用在大括号里等等按钮click ajax 请求会调用。如果您使用的是 Firefox,则安装名为 Firebug 的插件,然后在控制台中检查您将看到 ajax 请求。【参考方案3】:我认为代码没有问题,但有时在大代码中 min.js 文件没有正确包含。请尝试以下代码。无需更改sensors.php 文件。
<!DOCTYPE html>
<html>
<head>
<script>
$(document).ready(function()
$('.rt11').click(function()
$.ajax(
url: "sensors.php",
context: document.body
).done(function(html)
$( this ).addClass( "done" );
);
);
);
</script>
</head>
<body>
<button type="button" class="rt11">Endre XML</button>
</body>
</html>
【讨论】:
刚刚试了一下。不幸的是没有运气。 sensors.php 没有按照它设置的那样做【参考方案4】:HTML:
<button type="button" id="idButton">Endre XML</button>
JS:
$("#idButton").click(function()
$.ajax(
url: 'sensors.php',
dataType: "xml", //if it returns a xml file
success: function (data)
// everything is ok
alert(data)
,
error: function (xhr, status, error)
// Something went wrong
if (xhr.status > 0) alert('Error: ' + status);
);
)
【讨论】:
【参考方案5】:试试这个,我认为你错过了包含 jQuery 库文件。在 ajax 调用后将发布数据发送到你的 php 文件。
<!DOCTYPE html>
<html>
<head>
//include the jQuery library file
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
function editXMLDoc()
var myvalue='123';
$.ajax(
url: "sensors.php",
context: document.body,
data: myvalue:myvalue,
).done(function()
$( this ).addClass( "done" );
);
</script>
</head>
<body>
<button type="button" onclick="editXMLDoc()">Endre XML</button>
</body>
</html>
【讨论】:
太棒了!导入是缺少的链接!以上是关于如何使用 jQuery 的 $.ajax() 函数来运行 php 脚本? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jQuery 在 JSON ajax 请求中回调 404 上的函数?
如何使用 jQuery 的 $.ajax() 函数来运行 php 脚本? [复制]
如何使用 jQuery AJAX 调用 ASP.Net 字符串函数?
如何使用 jquery ajax 调用来调用 php 函数? [复制]