【问题标题】:Passing Javascript object to PHP using post on submit and store data in mySQL DB使用 post 将 Javascript 对象传递给 PHP,并将数据存储在 mySQL DB 中
【发布时间】:2013-10-14 16:36:04
【问题描述】:

我在提交时将 JS 对象发布到 PHP 页面然后将其存储到 mySQL 数据库中时遇到问题。

这是脚本:

var idToDb = [];
var nameToDb = [];
var friendToDb ={};
$('.btn-add').click(function(e){
    e.preventDefault();
    $(this).toggleClass('btn-info btn-success');
    $(this).toggleClass('friend-selected');
    $(this).html($(this).html() == "Selected" ? "Add" : "Selected");         
    addOrRemove(idToDb, $(this).parent().data('id'));
    addOrRemove(nameToDb, $(this).parent().data('name'));
    friendToDb = _.object(idToDb, nameToDb)

我想在单击提交按钮后使用 post 将此数组 "friendToDb" 发布到单独的 PHP 页面,然后将其存储在 mySQL 数据库中。

这是我试图在 PHP 中发布的内容:

<form method="post" action="friend_input.php">
    <div id="submitBtnRow" class="row top-plus">
      <div class="col-md-12">
        <div class="form-group">
          <input type="submit" id="submitBtn" class="btn btn-info btn-lg btn-block" value="SUBMIT">Submit</a>
        </div>
      </div>
    </div><!-- /submitBtnRow -->
</form>

然后在 friend_input.php 中,我尝试获取 friendToDb 并存储在 mySQL 数据库中,但我不知道该怎么做。

请告诉我应该怎么做。

谢谢。

【问题讨论】:

  • 你听说过$.ajax吗?..
  • 您有什么问题?尝试提交的代码在哪里?
  • 如果我没记错friendToDb 是一个对象而不是一个数组。你的代码是这样说的。
  • @NabeelSheikh 是的,抱歉,这是一个对象。而且我根本不知道 ajax。
  • @Barmar 对不起,我忘了包括那个。我已经更新了我的问题。

标签: javascript php mysql arrays


【解决方案1】:

制作form action=""并使用ajax将你的对象传递给php:

$.ajax({
url:"friend_input.php",
type:"post",
data:{value:JSON.stringify(friendToDb)},   //Converts a JavaScript value to a JavaScript Object Notation (JSON) string.
success:function(result){
// response from php page
}
});

在php页面中:

echo json_decode($_POST['value']);  //Takes a JSON encoded string and converts it into a PHP variable.

【讨论】:

  • 感谢您,但我如何确保仅在单击提交按钮后才会发生这种情况?你能解释一下“//来自php页面的响应”是什么意思吗?谢谢
  • 在声明friendToDb 后使用此函数。即在为friendToDb赋值之后。 "//response from php page" 表示您从 php 页面获得的响应。即在这种情况下,$_POST['value'] 将显示如果您alert 变量result
  • 好的。所以我按照你告诉我的做了,点击提交按钮后,页面被重定向到friend_input.php,我收到一个错误:“未定义的索引:C:\xampp\htdocs\project-1\friend_input.php 中的值第 37 行“
  • 是通过 ajax 还是表单操作重定向??
  • 它应该通过表单操作重定向,因为变量friendToDb是动态的,并且在用户点击提交按钮之前不是最终的。
【解决方案2】:

将此添加到您的表单中

<input id="friendDb" name="friendDb" type="hidden" />

然后使用使用

$("#friendDb").val();

在发布到脚本之前设置值。

【讨论】:

  • 谢谢。但是 标签和设置变量 $("#friendDb").val(); 之间有什么联系?我按照您的方法更改了输入标签并使用另一个变量来存储 #friendToDb 并尝试在 php.ini 中回显它。但什么都没有显示。
猜你喜欢
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
  • 2019-03-09
  • 1970-01-01
  • 1970-01-01
  • 2016-04-02
  • 2017-10-07
  • 2017-04-09
相关资源
最近更新 更多