【问题标题】:calling OOP PHP function via AJAX通过 AJAX 调用 OOP PHP 函数
【发布时间】:2015-04-12 00:51:56
【问题描述】:

我有 OOP php 文件,我想通过 AJAX 调用其中一个函数,我已经阅读了很多关于此的内容(主要是 stackoverflow),但由于某种原因,它不起作用。

我知道调用了 ajax 函数(我试图在成功函数中添加一些警报,并且在单击按钮后出现警报),但不知何故它忽略了文件 ajax.php 中的所有内容(我什至尝试在ajax.php 文件的顶部,但什么也没发生)

还要注意我需要按钮,而不是输入(虽然这样会容易得多)

这是我的按钮:

<button class='formular-button' type='button' onclick='prihlasPA()'> vypiš přihlaš </button>

这是我的按钮脚本:

<script>
function prihlasPA() {
$.ajax({
    type: "POST",
    url: "ajax.php",
    data: {action: 'prihlasP'},
    success: function(){},
    error: function(){
        alert("chyba");
    }
  });    
}
</script>

这是在ajax.php中,由AJAX调用:

include( 'navstevnik.php' );
echo "aaa";
if(isset($_POST['action']) ) {
    $navstevnik = new navstevnik; //navstevnik is name of my class btw
    $navstevnik->vypisPrihlas();
} 

我认为这并不重要,但在我的函数 vypisPrihlas() 中是这样的代码:

public function vypisPrihlas(){
    $this->index=1;
    echo ' 
        <fieldset class="formular">
        <div class="pure-control-group stred" >
            <input id="nick" type="text" name="nickP" placeholder="Nickname">
        </div>
        <div class="pure-control-group stred">
            <input id="password" type="password" name="hesloP" placeholder="Heslo">
        </div>
        <input class="pure-button pure-button-primary stred" style=width:188px; type="submit" name="buttonP" value="přihlásit" />
    </fieldset>'; 
}

【问题讨论】:

  • 当然,我没有使用 jQuery 的经验,但是如果它可以在这种情况下提供帮助,那么我很乐意使用它。
  • 您已经在使用 jQuery,除非 $.ajax 是自定义函数。
  • 它不是自定义的。我虽然他的意思是“jQuery解决方案”与我的解决方案不同

标签: php ajax function oop


【解决方案1】:

我没有发现上述代码有任何问题。

当函数vypisPrihlas 回显 HTML 时,您不会在主页上看到它。相反,您需要从您的成功函数中加载它并将 HTML 附加到页面的某个位置。

$.ajax({
    type: "POST",
    url: "ajax.php",
    data: {action: 'prihlasP'},
    success: function(data){
        $( ".your_favorite_div" ).append(data);
    },
    error: function(){
        alert("chyba");
    }
});

【讨论】:

  • 我明白你的意思,但是当我尝试这样做时,没有任何改变。我还尝试了添加到 ajax.php 文件中的简单回声,并且出现了回声,但 vypisPrihlas() 没有任何内容。
  • 您是否碰巧收到错误警报 (chyba)?另外,如果您在 Network 选项卡 (f12->Network) 下进行检查,您是否从 ajax.php 获得了预期的结果?
  • 我没有收到错误,但现在我尝试将其附加到不同的 div 中并且这有效,不知道为什么不同的 div 有不同的输出,但是通过一些布局调整我将能够做到这一点首先想要,很抱歉给您带来麻烦,非常感谢您的时间,您救了我。
【解决方案2】:

按照你说的,ajax函数没问题吧?

我认为你的问题是 PHP 的路径,因为它没有被调用。尝试更改此行

url: "ajax.php",

对于完整路径,例如 \var\www\path_to_code\ajax.php。也许有帮助。

【讨论】:

  • 谢谢,但是url实际上是正确调用的,否则会调用error: function()(我试图删除ajax.php字段并发生错误)
猜你喜欢
  • 2012-09-30
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多