【问题标题】:Pass jquery - generated variable to php in same page将 jquery - 生成的变量传递给同一页面中的 php
【发布时间】:2015-02-05 14:07:54
【问题描述】:

我有一个脚本,当单击该按钮时,该脚本会在该按钮的行上获取数据。按钮的 id 是 id='show-button'。这是脚本:

<script>
        $(document).ready(function(){
             $(".show-button").click(function() {
             var $row = $(this).closest("tr");    // Find the row
             var names = $row.find(".name").text(); // Find the name
             var surname = $row.find(".surname").text(); // Find the surname 
             var lecturer_id = names."_".surname;
             $("#show_dialog").dialog({autoOpen: false});
             $(".show-button").on("click", function() {$("#show_dialog").dialog("open");});
         });
        });
    </script>

最后两行重要的行打开一个 jquery 对话框。 有了这个,我的意思是这些行:

$("#show_dialog").dialog({autoOpen: false});
$(".show-button").on("click", function() {$("#show_dialog").dialog("open");});

现在,我需要将 var Lecturer_id 的值传递给这段代码之外的 php 脚本,但在同一个文档中。此 php 代码将生成由这两行创建的对话框的内容。假设我只想回显在对话框中传递的变量(使用 php)。

知道如何让它发挥作用吗?

【问题讨论】:

  • 您需要使用 AJAX。无论 PHP 将在服务器端运行什么,您都不会访问已经呈现的页面。
  • 我想通了。但我不知道该怎么做。 ajax post 似乎在其他文件上传递数据。我需要在调用对话框的最后两行中传递它
  • 这是 PHP 已经渲染的东西,你只需要访问它吗?
  • 不,不是。我使用 jquery 来获取与按钮(姓名和姓氏)在同一行中的数据。现在假设我想用 $("#show_dialog").dialog({autoOpen: false}); 创建一个对话框$(".show-button").on("click", function() {$("#show_dialog").dialog("open");});在此对话框中,我想回显姓名和姓氏。
  • 然后您只需使用来自 JS 变量的信息来显示姓名和姓氏。在这种情况下不需要 AJAX 或 PHP。 $('#show_dialog').html(name + ' ' + surname); 如果#show_dialog 是对话框的ID。

标签: php jquery variables


【解决方案1】:

你的问题不是 100% 清楚,但是,如果我没听错的话,只是一个想法:

<script>
$(document).ready(function(){

     $(".show-button").click(function() {
         var $row = $(this).closest("tr");    // Find the row
         var names = $row.find(".name").text(); // Find the name
         var surname = $row.find(".surname").text(); // Find the surname 
         var lecturer_id = names."_".surname;
        $.post( "test.php", { names: names, surname: surname; lecturer_id: lecturer_id })
            .done(function( data ) {
            $("#show_dialog")[0].innerHTML = data ;
            $("#show_dialog").dialog({autoOpen: false});
            $(".show-button").on("click", function() {$("#show_dialog").dialog("open");});
        });

    });
});
    </script>

我同意@JayBlanchard 的观点,您甚至不需要任何 ajax 调用,只需生成您的 html,如下所示:

 $(document).ready(function(){

         $(".show-button").click(function() {
             var $row = $(this).closest("tr");    // Find the row
             var names = $row.find(".name").text(); // Find the name
             var surname = $row.find(".surname").text(); // Find the surname 
             var lecturer_id = names."_".surname;

            $("#show_dialog")[0].innerHTML = ' Name = '+names +'; Surname = '+surname ;
                $("#show_dialog").dialog({autoOpen: false});
                $(".show-button").on("click", function() {$("#show_dialog").dialog("open");});


        });
    });

【讨论】:

    【解决方案2】:

    您可以使用 jQuery post 或 ajax。

    $.post( "test.php", { name: "John", time: "2pm" })
      .done(function( data ) {
        alert( "Data Loaded: " + data );
      });
    

    test.php 将是 php 的接收端,它期望 jquery 发送的数据。
    { name: "John", time: "2pm" } 将是您希望发送到 php 的数据。
    data 将是php输出的数据。

    更多信息请参考http://api.jquery.com/jquery.post/

    【讨论】:

    • 你想做什么..?问题并没有说你不想做 ajax 调用。
    • 好的,澄清一下。我用 jquery 获取的数据,我只是想发布它。用 php。在我在 jquery 中创建的对话框内。它应该是这样的: ';回声 $jquery_data;回声'
      '; ?>
  • 所以只需将 post 调用注入到您的对话框中。如果您不等待响应,则无需使用 post 调用返回的数据。
  • 但对话框是在 jquery 中创建的。而且我不能在里面写php(不能在php里面写jquery)
  • 猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2016-03-13
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    相关资源
    最近更新 更多