使用php数组提交

使用php数组提交,php,jquery,ajax,Php,Jquery,Ajax,我的目标是当用户点击编辑按钮时,将此all=发送到页面edit.php <script type="text/javascript"> $(document).ready(function () { $(".edit").click(function () { $.ajax({ url: "edit.php", type: "post", dataType: "html",

我的目标是当用户点击编辑按钮时,将此
all=
发送到页面
edit.php

<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>
这段代码什么也不做(firebug中没有ajax调用)

<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>

$(文档).ready(函数(){
$(“.edit”).submit(函数(){
$.ajax({
url:“edit.php”,
类型:“post”,
数据类型:“html”,
数据:“,
成功:功能(数据){
$('#ad').html(数据);
}
});
});
});

<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>

$(文档).ready(函数(){
$(“.edit”)。单击(函数(){
$.ajax({
url:“edit.php”,
类型:“post”,
数据类型:“html”,
数据:“所有”,
成功:功能(数据){
$('#ad').html(数据);
}
});
});
});

<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>

$(文档).ready(函数(){
$(“.edit”)。单击(函数(){
$.ajax({
url:“edit.php”,
类型:“post”,
数据类型:“html”,
数据:“所有”,
成功:功能(数据){
$('#ad').html(数据);
}
});
});
});

使用json编码将php数组编码为json字符串
使用json编码将php数组编码为json字符串
<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>

您正在回送一个数组,这将使PHP回送类似于Array()的内容,而不是真正的值。
<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>
Try var_dump($arr);要转储数组并最终尝试序列化数组,以后更容易检索其状态。
如果ajax调用确实可以处理静态数据,那么这就是您应该开始查找的地方。

您正在回送一个数组,这将使PHP回送类似于Array()的内容,而不是真正的值。
<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>
Try var_dump($arr);要转储数组并最终尝试序列化数组,以后更容易检索其状态。
如果ajax调用确实可以处理静态数据,那么这就是您应该开始查看的地方。

如@MilanJaric所示,您确实需要操作submit按钮的
单击
。但是,除此之外,还应防止单击的默认操作结束编辑

<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>
您需要回显json_编码并用引号包装的数据:

<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>

$(函数()
{
$('.edit')。单击(函数(e)
{
$.ajax({
url:'edit.php;,
键入:“post”,
数据类型:“html”,
数据:“”,
/*根据您的代码很难判断,但是如果您希望在名为“all”的服务器上使用var,请使用以下命令,而不是上面的命令行:
数据:{
全部:“”
},
*/
成功:功能(数据)
{
$('#ad').html(数据);
}
} );
e、 预防默认值();
} );
} );
然而,在我看来,在JS中回显PHP会变得非常难看,特别是如果你必须做很多事情的话,因此当需要时,我会使用一个将PHP数据作为JS变量注入代码中。这允许我隔离IIFE调用参数中的所有PHP回显:

<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>
<?php 
  $arr = array("one", "two", "three")
?>

<div id="content">
  <input class="edit" type="submit" value="Edit" /> 
</div>

<script type="text/javascript">
  ( function( arr )
  {
    $( function()
    {
      $( '.edit' ).click( function( e )
      {
        $.ajax( {
          url: 'edit.php;,
          type: 'post',
          dataType: 'html',
          data: arr,
          /* It's hard to tell based on your code, but if you wanted a var at the server named "all" use this instead of the above line:
          data: {
            all: arr
          },
          */
          success: function( data )
          {
            $( '#ad' ).html( data );
          }
        } );

        e.preventDefault();
      } );
    } );
  }(
    '<?php echo json_encode( $arr ); ?>'
  ) );
</script>

(功能(arr)
{
$(函数()
{
$('.edit')。单击(函数(e)
{
$.ajax({
url:'edit.php;,
键入:“post”,
数据类型:“html”,
数据:arr,
/*根据您的代码很难判断,但是如果您希望在名为“all”的服务器上使用var,请使用以下命令,而不是上面的命令行:
数据:{
所有人:啊
},
*/
成功:功能(数据)
{
$('#ad').html(数据);
}
} );
e、 预防默认值();
} );
} );
}(
''
) );

编辑正如@MilanJaric所示,您确实需要操作提交按钮的
点击
。但是,除此之外,还应防止单击的默认操作结束编辑

<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>
您需要回显json_编码并用引号包装的数据:

<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>

$(函数()
{
$('.edit')。单击(函数(e)
{
$.ajax({
url:'edit.php;,
键入:“post”,
数据类型:“html”,
数据:“”,
/*根据您的代码很难判断,但是如果您希望在名为“all”的服务器上使用var,请使用以下命令,而不是上面的命令行:
数据:{
全部:“”
},
*/
成功:功能(数据)
{
$('#ad').html(数据);
}
} );
e、 预防默认值();
} );
} );
然而,在我看来,在JS中回显PHP会变得非常难看,特别是如果你必须做很多事情的话,因此当需要时,我会使用一个将PHP数据作为JS变量注入代码中。这允许我隔离IIFE调用参数中的所有PHP回显:

<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>
<?php 
  $arr = array("one", "two", "three")
?>

<div id="content">
  <input class="edit" type="submit" value="Edit" /> 
</div>

<script type="text/javascript">
  ( function( arr )
  {
    $( function()
    {
      $( '.edit' ).click( function( e )
      {
        $.ajax( {
          url: 'edit.php;,
          type: 'post',
          dataType: 'html',
          data: arr,
          /* It's hard to tell based on your code, but if you wanted a var at the server named "all" use this instead of the above line:
          data: {
            all: arr
          },
          */
          success: function( data )
          {
            $( '#ad' ).html( data );
          }
        } );

        e.preventDefault();
      } );
    } );
  }(
    '<?php echo json_encode( $arr ); ?>'
  ) );
</script>

(功能(arr)
{
$(函数()
{
$('.edit')。单击(函数(e)
{
$.ajax({
url:'edit.php;,
键入:“post”,
数据类型:“html”,
数据:arr,
/*根据您的代码很难判断,但是如果您希望在名为“all”的服务器上使用var,请使用以下命令,而不是上面的命令行:
数据:{
所有人:啊
},
*/
成功:功能(数据)
{
$('#ad').html(数据);
}
} );
e、 预防默认值();
} );
} );
}(
''
) );

除了其他人指出的需要
json_encode()
您的
$arr
之外,还指出以下几点:

<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>
当用户尝试提交时,提交事件被发送到元素 提交一份表格。它只能附着到图元

<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>
所以我认为AJAX没有被提交的原因是您的
元素不在
元素中。请尝试以下操作:

<script type="text/javascript">
$(document).ready(function () {
    $(".edit").click(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo $arr; ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>
<?php 
$arr = array("one", "two", "three");
?>

<form id="content">
<input class="edit" type="submit" value="Edit" /> 
</form>

<script type="text/javascript">
$(document).ready(function () {
    $(".edit").submit(function () {
        $.ajax({
            url: "edit.php",
            type: "post",
            dataType: "html",
            data: "all=<?php echo json_encode($arr); ?>",
            success: function (data) {
                $('#ad').html(data);
            }
        });
    });
});

</script>

$(文档).ready(函数)