我发送给我的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与登录的人员相同,则显示对话框。
答案 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作为回报。