【问题标题】:Execute PHP GET dynamically动态执行 PHP GET
【发布时间】:2013-03-31 17:56:56
【问题描述】:

我目前有一个 php 脚本,当单击按钮时由 Javascript 加载该脚本。 它会创建所有加载后看起来像这样的 html 内容

  <ul>
    <li>
        <a href='foo.php?var=abc123'>
    </li>
    <li>
        <a href='foo.php?var=def123'>
    </li>
  </ul>

所以当一个链接被点击时,它会使用 GET 将 PHP 变量发送到同一个脚本,然后它会显示另一个结果列表。

我想要做的是,当您单击链接而不是转到带有结果的新页面时,它会将它们加载到此部分下方以产生类似这样的结果(例如 treeview():

 <ul>
       <li>
          <a href="#" id="abc123">abc123</a>
       </li>
           <ul>
              <li>
                   <a href="#" id="jkl123">jkl123</a>
              </li>
              <li>
                   <a href="#" id="ghi123">ghi123</a>
              </li>
         </ul>
    <li>
        <a href="#" id="def123">def123</a>
    </li>
 </ul>

如果我使用静态变量,我可以让它工作,但我需要找到一种方法从点击时创建的 html 中获取变量,将其放入 javascript 函数中,以便它可以执行 PHP 脚本。

谢谢。

【问题讨论】:

  • 你的问题太笼统了。向我们展示您尝试的源代码。
  • 你的意思是php脚本吗?

标签: php javascript ajax variables get


【解决方案1】:

听起来你会想使用AJAX:

     $.ajax({
            type: 'GET',
            url: "yoururlhere.com",
            data: {
                someparam: "somevalue",
                param2: "anothervalue"
            },
            dataType: "json",
            success: function (JSONdata, textStatus, jqXHR) {
                // do work here on success


            }
        });

您可以像这样将它附加到点击处理程序:

$("someID").on("click",function(){
event.preventDefault();
var href = $(this).attr("href");

         $.ajax({
                type: 'GET',
                url: href ,
                data: "param=value&param2=anothervalue",
                success: function (JSONdata, textStatus, jqXHR) {
                    // do work here on success


                }
            });
});

更新:

一些例子HTML与上面的代码一起使用:

<a id="someID" href="yoururl.php">Click me</a>

【讨论】:

  • 感谢您的回答。是的,我以为我会的。我以前做过一点点,但不多。这只是在
  • 是的,这将出现在您的任何其他 js 所在的任何位置 - 无论是在 &lt;script&gt; 标记中还是在其自己的文件中。 @您的第二个问题,此代码正在使用 click 处理程序-阅读它们-因此代码仅在单击 &lt;a&gt; 标记时运行。
  • 我将更新一些 html 以完成示例 - 还可以查看 jquery 网站上的 ajax 文档 :)
  • @AdamConnah 底部的更新显示了&lt;a&gt; 标签,我也更新了 AJAX,以便向您展示两者如何协同工作。
  • @AdamConnah 您需要在点击处理程序中添加event.preventDefault(); - 查看最新更新。 ID 应该总是是独一无二的。所以你可能有多个点击处理程序。或者,您可以将id 更改为class,然后您可以像这样使用class selector:$(".your_class_here").on("click", function(){ });
猜你喜欢
  • 1970-01-01
  • 2021-09-04
  • 1970-01-01
  • 2016-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多