【问题标题】:Adding data into MySQL from a dynamic jQuery form从动态 jQuery 表单将数据添加到 MySQL
【发布时间】:2013-11-28 11:41:17
【问题描述】:

我正在尝试使用 jQuery 从动态表单向 MySQL 插入数据。作为记录,我正在使用 Twitter Bootstrap。 我实际上实现了插入“行”但没有数据。我现在找到的最好的帮助是 here 用于插入 MySQL 和 here 用于 jQuery 脚本。

提前感谢您抽出宝贵时间。

文件:add.php

<form  action="../reglas/insert.php" method="post" class="form-horizontal">
<div class="container">
<div id="content">
<div class="row">

<a class="add_line btn btn-small" href="#" style="margin-left:5px">+</a>
</div>

<br>
</div>



</div>

 </div>
 </div>

 <div style="margin:20px auto; width:80px;">

 <input  class="btn btn-success"  type="submit" value="Guardar">
</div>

</form>


<script>
$("#content").delegate(".add_line", "click", function() {
var content = '<div class="row">' +

                     '<div class="span3"><div class="input-append"><input type="text"   class="span2 text-right" placeholder="0.00"  id="enganche"  name="enganche" value="" /><span class="add-on">%</span></div></div>' +
                     '<div class="span3"><div class="input-append"><input type="text" class="span2 text-right" placeholder="0.00" id="comision" name="comision" value="" /><span class="add-on">%</span></div></div>' +
                     '<div class="span3"><div class="input-append"><input type="text" class="span2 text-right" placeholder="0.00" id="r1" name="r1[]" value="" /><span class="add-on">%</span></div></div>' +

                     '<div class="span2"><div class="input-append"><input type="text" class="span1 text-right" placeholder="0.00" id="r2" name="r2[]" value="" /><span class="add-on">%</span></div></div>'+

                     '<a class="del_line btn btn-small" href="#" style="margin-left:5px">-</a>&nbsp;' +
                     '<br><br>'+

                     '</div>';
$("#content").append(content);
return false;   
});

$("#content").delegate(".del_line", "click", function() {
$(this).parent().remove();
return false;  
});
</script>

文件:insert.php

连接:

$con=mysqli_connect("$host","$username","$password","$db_name");
mysqli_autocommit($con, false);

$flag=true;

查询:

$query="
INSERT INTO $tbl_name(
the_input,
)
VALUES (
'$the_input',
)";

“为”:

for ($i = 0; $i < count($_POST['the_input']); $i++) {
$the_input = $_POST['the_input'][$i];


$result = mysqli_query($con, $query);
if (!$result) {
$flag = false;
echo "Error details: " . mysqli_error($con). ". ";
}
}
if ($flag) {
mysqli_commit($con);
echo "Done!";
}

mysqli_close($con);

?>

【问题讨论】:

  • 谢谢@leemo,你能说得更具体点吗?我非常感谢这里的一些指导。
  • 我会猜测您要发送哪些数据位并尝试为您模拟答案
  • 感谢@leemo。这就是实际表单在浏览器中的外观。 (dropbox.com/s/61hxtuls9kwa959/…)
  • 你能把表单的整个 HTML 贴出来吗?你把这一切都包含在一个 FORM 标记中吗?
  • 另外,您使用 mysql 提交的任何特殊原因?

标签: php jquery mysql


【解决方案1】:

好啊。

第一件事:

$.delegate() 已被弃用,因此除非您使用的是 $.on() 事件绑定器/委托函数。这将确保您的代码是面向未来的(至少在他们再次更改 api 之前!)

其次:

我假设您已将数据包装在表单标签中,并且值实际上正在发送到接收页面,这就是我的做法:

if(isset($_POST['the_input']))
{
    //create connection object;
    $mysqli = new mysqli($host,$username,$password,$db_name);

    $query = "INSERT INTO `the_input` VALUES (";

    //construct the query. Get the the_input data and paramater string (required for stmt binding)
    foreach($_POST['the_input'] as $value)
    {
        $query .= $value . ",";
    }

    //remove trailing comma
    $query = substr($query, 0, strlen($query)-1);
    $query .= ")";

    //this is just so you can see what the loop did and test the output of the query, remove this when you're confident
    echo "The constructed query string is: " . $query

    if($mysqli->query($query) == false)
    {
        trigger_error($mysqli->error);
    } else {
        echo "Success! Check the DB!";
    }

} else {
    Echo "No POST data was recieved";
}

【讨论】:

  • 非常感谢@leemo 的建议和回答。让我们试试吧!
  • @HcH 我的代码中有一个错误,我现在已经更正了...缺少括号。
  • 谢谢@leemo 我有这个错误。我正在使用 Adob​​e Dw。 dropbox.com/s/bgp5ukcw4ihom8o/…
  • 也许dreamweave 不喜欢那种语法……你试过在服务器上运行它吗?我已经更新了我的答案以提供和替代
  • 是的,我有这个... 解析错误:语法错误,意外的 T_IF,期待 ',' 或 ';'在 /home/content/07/11731907/html/reglas/insert.php 第 32 行
猜你喜欢
  • 2012-08-17
  • 1970-01-01
  • 1970-01-01
  • 2016-12-19
  • 1970-01-01
  • 2012-06-05
  • 1970-01-01
  • 2013-01-22
  • 1970-01-01
相关资源
最近更新 更多