目前,我有一个包含PHP脚本的HTML页面。一旦用户登录,包含php脚本,数据将自动返回到页面,如下所示:
<section class="content">
<?php include("api/qnams_all.php"); ?>
</section>
该脚本包含一个返回带有名为#example1。
的ID的表的查询使用该ID,我将使用jQuery DataTables格式化该脚本中的数据:
$('#example1').DataTable({
{
"dataType": "json",
"iDisplayLength": 25,
"bDestroy": true,
"stateSave": true
});
现在,我想做的是检查是否通过jQuery单击了一个按钮,如果是,则运行不同的php脚本。
所以在上面的那个标签中,我想做这样的事情:
<section class="content">
<button type="button" id="buttonSearch">Search</button>
<script type="text/javascript">
if('#buttonSearch').click(function()
{
// return <?php include("api/differentScript.php"); ?>
}
else
{
// return <?php include("api/qnams_all.php"); ?>
});
</script>
</section>
我确信JavaScript中的语法可能不对。我试图展示我正在尝试做的一个例子。
我不确定是否可以这样做。如果可以,请赐教。
答案 0 :(得分:2)
我会对页面使用ajax
调用。听听PHP
中有什么要求并将其归还。然后将其结果添加到页面上的HTML对象中。
我会像这样接近它;
<?php
if(isset($_POST['script1'])){
include("api/differentScript.php");
exit;
}
if(isset($_POST['script2'])){
include("api/qnams_all.php");
exit;
}
?>
<div id='output'></div>
<script type="text/javascript">
$("#buttonSearch").on('click', function(){
$.ajax({
type:"POST",
url: "/page_location/",
data: "script1=true",
success: function(result){
$("#output").html(result);
}
});
});
$("#buttonSearch2").on('click', function(){
$.ajax({
type:"POST",
url: "/page_location/",
data: "script2=true",
success: function(result){
$("#output").html(result);
}
});
});
</script>
我不确定数据表是如何工作的,如果您要将数据存储在变量中,您可以通过将其更改为发布数据来发送它:
data: {script1: true, post_data_1: var},
答案 1 :(得分:1)
不幸的是,如果不将某些内容发送回您的Web服务器,您尝试执行的操作将无法正常工作。 PHP是一种服务器端语言,因此一旦您使用Jquery在浏览器中,就无法在该页面上执行PHP。
您有两个选择,假设您不希望在初始请求中向下游发送两个选项:您可以在点击时重定向:
UPDATE `wp_posts` SET `post_content` = REPLACE(`post_content`, 'Example Routes:', 'Routes:')
WHERE `post_content` LIKE '%Example Routes:%';
或者,查看您的URL并注意到您正在使用API,您可以使用AJAX进行异步调用:
<script type="text/javascript">
if('#buttonSearch').click(function()
{
window.location.href = "/api/differentScript.php";
}
else
{
window.location.href = "/api/qnams_all.php";
});
</script>
如果'differentScript.php'以
结尾<script type="text/javascript">
$('#buttonSearch').click(function()
{
$.ajax({
dataType: 'json',
url: "/api/differentScript.php",
data: {key: 'value'},
success: function(repsonse) {
var responseObject = JSON.parse(response);
//Do something with response object on page
},
error (message) {
//handle errors
}
});
</script>
$ results是一个PHP对象或数组,然后是
return json_encode($results);
将您的PHP数组转换为jquery对象。
答案 2 :(得分:0)
您不能在Javascript中包含这样的PHP脚本。你必须为每个条件和一个Ajax调用然后通过PHP脚本做你想要的事情。 如果你&#34;包括&#34;如上所述,PHP脚本将在您加载页面时直接包含它们,而不是单击任何按钮。此外,这不是正确的方法。