【问题标题】:Passing php variable to jquery and from jquery to php将 php 变量传递给 jquery 并从 jquery 传递给 php
【发布时间】:2016-06-26 11:59:30
【问题描述】:
<script>

    $(document).ready('click','#btnadd',AddCategoryForm: function(catId)
    {   
        //$('#addCategoryForm').load('./addCategory.php');
        alert('hi'+catId);

        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("addCategoryForm1").innerHTML = xmlhttp.responseText;
            }
        };
        //xmlhttp.open("GET", "addCategory.php?q=" + str, true);
        xmlhttp.open("GET", "addCategory.php?catId="+catId, true);
        xmlhttp.send();
    }
</script>

<input id="btnadd" type="button" value="Add Category" onClick="AddCategoryForm(<?php echo $catId ?>)">

我的jquery 每次刷新/重新提交页面时都不会运行,所以我把它放进去 带有document ready.. 的内联函数,但它不能传递变量 其中包含我从php 传递的对象。

【问题讨论】:

  • 顺便说一句语法错误。
  • 从php传过来是什么意思?
  • 如果我通过定义按钮点击事件直接使用它,在重新提交同一页面时不会调用点击功能..
  • 传递给 jquery 函数的 catid 变量是 php 变量...我想将它传递给名为 addCategory.php 的其他 php 文件

标签: javascript php jquery html


【解决方案1】:

你可能忘记了';'性格?
它应该如下所示:

onClick="AddCategoryForm(<?php echo $catId; ?>)"

【讨论】:

    【解决方案2】:
    <script type="text/javascript">
        $(document).ready(function(){
            $('#static_parent').on('click','#btnadd',function(){AddCategoryForm($(this).attr('data-katid'))});
        }
    
    function AddCategoryForm(catId)
    {
        //$('#addCategoryForm').load('./addCategory.php');
        alert('hi'+catId);
    
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("addCategoryForm1").innerHTML = xmlhttp.responseText;
            }
        };
        //xmlhttp.open("GET", "addCategory.php?q=" + str, true);
        xmlhttp.open("GET", "addCategory.php?catId="+catId, true);
        xmlhttp.send();
    }
    </script>
    
    <div id="static_parent">
        <input id="btnadd" type="button" value="Add Category" data-katid="<?php echo $catId; ?>">
    </div>
    

    你忘记了脚本类型
    也许可以试试这个方法。
    更容易改变。
    我添加了方法,因为你没有指定按钮是否被动态添加到 html - 在这种情况下你需要添加包装到动态创建的静态按钮 - 这就是为什么我添加了 id 为 static_parent 的 div

    但如果它是简单的静态按钮,那么试试这个:

    <script type="text/javascript">
    
    function AddCategoryForm(catId)
    {
        //$('#addCategoryForm').load('./addCategory.php');
        alert('hi'+catId);
    
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("addCategoryForm1").innerHTML = xmlhttp.responseText;
            }
        };
        //xmlhttp.open("GET", "addCategory.php?q=" + str, true);
        xmlhttp.open("GET", "addCategory.php?catId="+catId, true);
        xmlhttp.send();
    }
    
    </script>
    
    <input id="btnadd" type="button" value="Add Category" onClick="AddCategoryForm(<?php echo $catId; ?>)">
    

    【讨论】:

    • 现在我再次阅读问题,并认为我可能误读了一个问题。
    • 为什么需要准备好?你认为有人会在页面加载之前点击按钮吗?
    猜你喜欢
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 2018-03-05
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多