为什么';jQueryAjax调用PhP返回到DIV中的表单不工作吗?

为什么';jQueryAjax调用PhP返回到DIV中的表单不工作吗?,php,jquery,html,ajax,Php,Jquery,Html,Ajax,我试图写一个交互式网页,并在此过程中学习更新(10年或更短)的网络技术。所以PhP、jquery和AJAX都属于这一类。我已经将代码缩减到只需要问这个问题的要点 我希望jquery调用一个PhP程序,该程序将加载两个单独的div。一个是数据显示区,另一个用于显示流程链中的下一个表单。我遇到的问题是,我返回的表单不起作用,即使它显示正确 这是主页(demo.php): 下面是PhP程序“thetest.PhP”,它决定返回到PageForm DIV中的内容: <?php //thetes

我试图写一个交互式网页,并在此过程中学习更新(10年或更短)的网络技术。所以PhP、jquery和AJAX都属于这一类。我已经将代码缩减到只需要问这个问题的要点

我希望jquery调用一个PhP程序,该程序将加载两个单独的div。一个是数据显示区,另一个用于显示流程链中的下一个表单。我遇到的问题是,我返回的表单不起作用,即使它显示正确

这是主页(demo.php):


下面是PhP程序“thetest.PhP”,它决定返回到PageForm DIV中的内容:

<?php //thetest.php
paramYN = $_POST["paramYN"];
if ($paramYN == "Y")
{
echo <<<_EOF
<form action="" id="Login"> 
<br/>This is the redisplay. Look for the date to change if it works after you click the      test it  button
<br/>To show this form again enter   Y  otherwise enter   N    : <input type="text" name="ParamYN" id="paramYN" size=1>
<input type="button" name="btnDemo" id="btnDemo" value="test it" /></form>
_EOF;
    $thetime = time();
    echo $thetime;
    exit();
}   
else
{
    echo "<html><head><title>PDO login</title></head><body>";
    echo "<h1>Congrats!</h1>";
    echo "</body></html>";
    exit();
}
?>

我只包括nextpage.php程序,因为我的程序的完整版本需要更新两个DIV。本演示的目的如下:

<?php //.php
echo "<h1>This is the new text for this place</h1>";
?>

那么我的问题是什么?是不是我在装潜水舱的时候遇到了什么问题?或者这是不可行的吗?

您有:

<?php //thetest.php
paramYN = $_POST["paramYN"];
if ($paramYN == "Y")
{

当您的页面首次加载时,您可以使用jQuery并将单击事件“绑定”到按钮“btnDemo”

然后,用户单击按钮“btnDemo”并触发加载事件。然而,通过这样做,您将用一个新的按钮“btnDemo”覆盖先前加载的按钮和已建立的jQuery事件。此新按钮没有相同的绑定单击事件

在新加载的按钮加载后,您需要通过将jQuery添加到加载页面“thetest.php”来将单击事件重新应用到新加载的按钮


echo您可以尝试更改$(“#btnDemo”)。单击(函数(){到$(“#登录”)。在('click','#btnDemo',函数(){由于您正在动态加载内容,因此最好使用事件委派。感谢您的建议。我是jquery新手。您的更改并不能解决我的问题,但我将根据您的建议实施,这是一种更好的做法。这非常有意义,但我不知道如何做到。谢谢。它在我的演示中起作用,我将在我的f中尝试ull程序。因此,为了确保我理解这是做什么的,请验证或纠正我的错误。您添加的新代码将函数绑定到新按钮?这是您在代码的第三行添加的函数()的工作吗?抱歉,我刚刚更改了它。请将绑定javascript添加到您正在加载的页面。(test.php)请参见上面的编辑。为了回答您的评论,jQuery“load”方法接受三个参数。jQuery.load('Param 1:url'、'Param 2:数据'、'Param 3:onComplete函数');我为反弹按钮的第三个参数添加了一个函数。但是,在您的情况下,此方法将无法工作,因为在加载按钮后,您将无休止地需要重新绑定。对于您,您需要使用我在上面发布的内容,只需将绑定放入即可。单击“你正在加载的页面上的脚本。好的。我根据你的更改重新编辑了内容。它们工作正常,实际上对我来说更有意义。至少我对这段代码比较熟悉。我认为这个故事的寓意是按钮是该对象的一个新实例,需要它自己的代码。我还设法让它在我的主程序中工作。谢谢你的帮助帮帮忙,谢谢。那是我的疏忽。
<?php //thetest.php
paramYN = $_POST["paramYN"];
if ($paramYN == "Y")
{
<?php //thetest.php
$paramYN = $_POST["paramYN"];
if ($paramYN == "Y")
{
echo <<<_EOF
<script>
$(document).ready(function(){
  //this will bind the click event to the newly loaded button
  $("#btnDemo").click(function() {
    $("#PageForm").load("thetest.php", { paramYN: $("#paramYN").val() })
    $("#PageContent").load("nextpage.php");
  });
});
</script>
<form> (the rest of your form here...)
_EOF;