Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 点击按钮返回PHP脚本_Javascript_Php_Jquery - Fatal编程技术网

Javascript 点击按钮返回PHP脚本

Javascript 点击按钮返回PHP脚本,javascript,php,jquery,Javascript,Php,Jquery,目前,我有一个包含PHP脚本的HTML页面。用户登录后,在包含php脚本的情况下,数据将自动返回到页面,如下所示: <section class="content"> <?php include("api/qnams_all.php"); ?> </section> 现在,我想做的是检查是否通过jQuery单击了一个按钮,如果是,运行另一个php脚本 在上面的部分标签中,我想做如下操作: <section class="content">

目前,我有一个包含PHP脚本的HTML页面。用户登录后,在包含php脚本的情况下,数据将自动返回到页面,如下所示:

 <section class="content">
 <?php include("api/qnams_all.php"); ?>
 </section>
现在,我想做的是检查是否通过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中的语法可能是错误的。我想展示一个我想做的例子


这可以做到吗?

我会使用
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>

不幸的是,如果不将某些内容发送回web服务器,您尝试执行的操作将无法工作。PHP是一种服务器端语言,因此一旦您在浏览器中使用Jquery,就无法在该页面上执行PHP

您有两个选项,假设您不想将这两个选项与初始请求一起发送到下游:您可以单击重定向:

<script type="text/javascript">
if('#buttonSearch').click(function()  
{
    window.location.href = "/api/differentScript.php";
}
else
{
   window.location.href = "/api/qnams_all.php";
});
</script>
$results是一个PHP对象或数组

JSON.parse(response)

将PHP数组转换为jquery对象。

在Javascript中不能包含这样的PHP脚本。您必须对每个条件进行Ajax调用&然后通过PHP脚本执行必要的操作。
如果您像上面提到的那样“包含”PHP脚本,那么在加载页面时将直接包含它们,而不是单击任何按钮。另外,这不是正确的方法。

使用您的代码,我如何将javascript变量发送到ajax中的php脚本?这肯定是正确的。再来几杯,我觉得我很好。然而,是的,它确实在很大程度上解决了我的问题。非常感谢,先生。
<script type="text/javascript">
if('#buttonSearch').click(function()  
{
    window.location.href = "/api/differentScript.php";
}
else
{
   window.location.href = "/api/qnams_all.php";
});
</script>
<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>
return json_encode($results);
JSON.parse(response)