首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从所有输入元素中获取id和value,并通过ajax传递它们

从所有输入元素中获取id和value,并通过ajax传递它们
EN

Stack Overflow用户
提问于 2013-02-26 00:59:32
回答 5查看 2.5K关注 0票数 1

我有一堆输入文本框,我想将它们放入一个数组(id和value)并通过ajax传递。在它被传递给我的php代码之后,我需要遍历它并将id和value保存在数据库中。(每个id占一行)

代码语言:javascript
复制
$("input").each(function() {
    values[$(this).attr("id")] = $(this).val();
});

我使用它来获取值并创建一个数组{"1":"new","2":"edit","3":"save","4":"delete"}

然后通过ajax传递,但是如何遍历这些值并保存它们呢?

代码语言:javascript
复制
$taal = $mysqli->real_escape_string($_POST['taal']);
$arr = $_POST['values'];
foreach ($arr as $key => $value) {
    $query = "INSERT INTO words (taal_id, number, word) VALUES ('" . $taal . "','" . $key . "','" . $value . "')";
    $result = $mysqli->query($query) OR die(mysql_error());
}

这就是我试图使用的,但它不起作用

ajax请求

代码语言:javascript
复制
$.ajax( {
    url: "javascript/ajax/taal.php?wat=saveWoorden",
    type: "POST",
    data: {values : values, taal : $('#talen').val()}
}).success(function() {
    $('.talenInfo').html('success');
})
EN

回答 5

Stack Overflow用户

发布于 2013-02-26 01:09:23

与其发送单独的insert语句,不如发送准备好的insert语句或post XML数据,这些数据可以在数据库端进行批量插入处理。

您可以像这样准备xml或bulk insert语句

代码语言:javascript
复制
var query = 'INSERT INTO words (taal_id, word)   ';
$("input").each(function () {
    query += 'Select  ' + $(this).attr("id") + ',' + $(this).val() + '  UNION ALL  ';
});

alert(query);
票数 0
EN

Stack Overflow用户

发布于 2013-02-28 14:29:25

我不确定..。我可以完全复制你的问题,但我已经尝试过了

代码语言:javascript
复制
<?php
unset($_POST['data'][0]);
print_r($_POST);
?>

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript></script>

<script type='text/javascript'>

  $(document).ready(function()
  {
     $('#submit').click(function(){
     var values = [];


      $("input").each(function() {
      values[$(this).attr("id")] = $(this).val();
      });     

     $.ajax({
     url      : 'try.php',
     data     : {data:values},
     type     : 'POST',
     success  :function(data){alert(success)}
    });
   });}); 
         </script>
               <html>
               <body>
                <form method='post'>
               <input id='1' value='text1'  type='text'/>
              <input id='2' value='text2' type='text'/>
              <input type='button' id='submit' value='submit'/>
             </form>
              </body>
               </html>

我发现值数组中的索引0是空值,所以我必须取消设置它。确保您也没有遇到同样的问题,因为它可能会违反数据库约束。

调试提示:打印查询以检查正在运行的值,并尝试直接在phpmyadmin中运行查询。您可能会知道错误是什么。

您可以查看firebug控制台以获取正在发布的值。

票数 0
EN

Stack Overflow用户

发布于 2013-02-26 01:06:00

从您的代码中,我了解到您只是将查询存储在一个变量中,而不是执行它。您需要在每次循环迭代中执行SQL查询。如果你使用的是mysql,你可以这样做:

代码语言:javascript
复制
mysql_query($query);

但请确保您已先初始化数据库连接。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15072224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档