使用AJAX在另一个文件中执行PHP函数

时间:2019-04-11 17:10:53

标签: javascript php ajax

我一直在浏览过去的答复并窃取代码,但似乎没有任何效果!加载脚本时,我正在尝试在单独的PHP文件中执行PHP函数。我收到警告消息,但它是在控制台上提交的,但没有任何控制台消息出现。

我读到AJAX函数需要响应,这就是为什么我添加了echo('Text')的原因。我正在使用Google浏览器。 我对jsQuery,javascript或AJAX并不了解。 PHP和HTML是我的强项。

在我的HTML代码中:

<body onload = "Start()">

<script>
    var Start = function() {
        $(document).ready(function(){
            $.ajax({
            type: "POST",
            url: 'MainRoutine.php?action=Startfunc',
            data: {func: "Startfunc"},
            success: function(response) {
                $('.result_Postme').text(response);
            }
        })
        alert("Form submitted successfully.\n"); // this is working!
    });
}
</script>

在我的MainRoutine.php文件中:

if (isset($_POST['func']) && ($_POST['func'] == 'Startfunc')) { 
    ChromePhp::log("Start Handle"); // the expected console message
    echo('Text'); // not sure why I'm doing this...
    Start(); // this is the function I'm trying to execute!
}else{
    ChromePhp::log("Error"); // not even this one displays
}

function Start() {
    echo('Text');  // not sure why I'm doing this either
}

我不打算将任何变量传递给PHP“ Start()”函数,我只想执行它!

1 个答案:

答案 0 :(得分:0)

您正在传递action作为代码中的参数。您正在像func中一样检查$_POST

请参见下面的正确代码:

<script>
    var Start = function() {
        $(document).ready(function(){
            $.ajax({
            type: "POST",
            url: 'MainRoutine.php?action=Startfunc',
            data: {func: "Startfunc"},
            success: function(response) {
                $('.result_Postme').text(response);
            }
        })
        alert("Form submitted successfully.\n"); // this is working!
    });
}
</script>

在您的MainRoutine.php文件中:

if(isset($_REQUEST['action']) && $_REQUEST['action']=='Startfunc'){ 
    ChromePhp::log("Start Handle"); // the expected console message
    echo('Text'); // not sure why I'm doing this...
    Start(); // this is the function I'm trying to execute!
}else{
    ChromePhp::log("Error"); // not even this one displays
}

function Start() {
    echo('Text');  // not sure why I'm doing this either
}