1

我对 jquery 也很陌生,所以我的问题听起来很简单或很愚蠢。任何帮助,将不胜感激。我有一个 html,我在其中通过按钮添加和删除行。我想通过另一个按钮通过这些数据更新数据库。所以我需要获取表格的长度才能将它们插入到 php 端的循环中。如何将数据传输到 php 端?我试过类似的东西..作为javascript代码

function Length()
       {

            var table=document.getElementById("Table");
            var len = table.rows.length;
            $.post('/myproject/update_data.php', { "CONTROL": "len" } );
       }

在 html 上;

<input type="submit" name="UPDATE" id="UPDATE" value="UPDATE" onclick="return Length();"/>

在php方面它就像

<?php
if(isset($_POST["UPDATE"]))
               {    
                    $length=$_REQUEST["CONTROL"];
               }
?>

我得到 CONTROL 没有定义。我输入php文件的目录是语法错误吗?还是别的什么?我无法得到。谢谢

4

4 回答 4

4

您不能将 AJAX 帖子与表单提交混合在一起,这是两个单独的请求。表单在 AJAX 请求完成之前提交,因此表单提交是您的服务器收到的请求。

我建议完全切换到 AJAX 请求并添加return false;到函数的末尾,这将取消表单提交并允许 AJAX 请求自己完成工作。像这样:

$.post('/myproject/update_data.php', { "CONTROL": len, "UPDATE": "UPDATE" } );

或者,您可以跳过 AJAX 并使用 JS 向表单添加隐藏输入。

将此添加到您的 HTML:

<input type="hidden" name="CONTROL" val="">

将此添加到您的 JS 中:

$('[name="control"]').val(len)
于 2013-02-15T14:53:08.083 回答
0

尝试在此处更改这部分代码

function Length()
   {

        var table=document.getElementById("TableYetkili");
        var len = table.rows.length;
        $.post('/myproject/update_data.php', { "CONTROL": "len" } );
   }

把它改成这个

function Length()
   {

        var table=document.getElementById("TableYetkili");
        var len = table.rows.length;
        $.post('/myproject/update_data.php', { "CONTROL": len } );
   }

我认为您遇到的问题是 thelen不是字符串,而是var len, 不需要引号。希望我有所帮助。同样在您的 PHP 文件中,如果未提交表单,则该IF声明将不正确。

于 2013-02-15T14:49:23.013 回答
0

在 javascript 中,变量不会像 PHP 那样插入到字符串中。所以这

{ "CONTROL": "len" }

应该

{ "CONTROL": len }
于 2013-02-15T14:51:29.710 回答
0
$length=$_REQUEST["KONTROL"];

$.post('/myproject/update_data.php', { "CONTROL": "len" } );

“控制”!=“控制”

代替: $.post('/myproject/update_data.php', { "CONTROL": "len" } );

代替: $.post('/myproject/update_data.php', { "CONTROL": len } );

“len”只是字符串。

而不是: $length=$_REQUEST["KONTROL"];

代替: $length = $_POST['CONTROL'];

于 2013-02-15T14:52:08.020 回答