php if语句不能与jquery变量一起使用

时间:2011-06-21 06:59:49

标签: php jquery ajax variables if-statement

我发送给我的PHP的jQuery变量不起作用(或者至少,它似乎不起作用)。我用ajax将它发送到我的php。

请看一下,也许你可以看到问题:

                $('.do').click(function(){
                var cid2 = $(this).attr('id');
                var gebridauthpos = cid2.indexOf('||');
                var gebridauth = cid2.substring(gebridauthpos+2);
                $.post("agenda.php", {gebridauth: gebridauth});
                alert(gebridauth);
                <?php
                    if ($admin == true || isset($_POST['gebridauth']) AND $_SESSION['id'] == $_POST['gebridauth']) {
                        echo "$('#dialog').dialog('open');\n";
                        echo "var cid = $(this).attr('id');\n";
                        echo "var datum = cid.substr(0, 10);\n";
                        echo "var naampos = cid.indexOf('|');\n";
                        echo "var gebridpos = cid.indexOf('||');\n";
                        echo "var naam = cid.substring(naampos+1,gebridpos);\n";
                        echo "var gebrid = cid.substring(gebridpos+2);\n";
                        echo "$.ajax({\n";
                            echo "type: \"POST\",\n";
                            echo "url: \"agenda.php\",\n";
                            echo "data: naam,\n";
                            echo "success: function(){\n";
                                echo "$('#gebruikerinput').html(\"<input type='text' READONLY='' size='35' value='\" + naam +\"'>\");\n";
                                echo "$('#gebridinput').html(\"<input type='hidden' name='gebridtextbox' value='\" + gebrid + \"'>\");\n";
                                echo "$('#datuminput').html(\"<input type='text' READONLY='' size='12' name='datum' value='\" + datum + \"'>\");\n";
                            echo "}\n";
                        echo "})\n";
                        echo "return false;\n";
                    }
                ?>
            });

基本上我想做的是,当我点击TD时,在我的PHP的if语句中使用“gebridauth”。如果TD与登录的人员相同,则显示对话框。

2 个答案:

答案 0 :(得分:0)

您需要在$.post电话上回拨,现在您只是发送POST而不关注服务器发回的内容,因此不会出现任何对话框。我想你想要更像这样的东西(用真正的代码来表达大评论):

$.post("agenda.php", {gebridauth: gebridauth}, function(data, textStatus, jqXHR) {
    // If the server sent back a "show the dialog" value in data then
    // show the dialog and all the other stuff that's currently in a
    // bunch of PHP echo calls.
});

答案 1 :(得分:0)

我认为你误解了AJAX的工作原理。你不能像这样混合使用Javascript和PHP,因为它们在不同的系统上运行时完全不同。如果您要发布到agenda.php,则您的PHP代码需要位于文件agenda.php中。该文件应该包含Javascript。您也无法echo Javascript作为回报。