在 JQuery 脚本中传递数组

发布于 2024-12-06 03:47:04 字数 1473 浏览 0 评论 0原文

这两天一直在研究这个愚蠢的问题。如果您能提供帮助,我将不胜感激!

所以我的 html 是这样的:

<a class='selected' option ='2' category='1' price='1750.00'>Round Corners</a>
<a class='selected' option ='3' category='1' price='2200.00'>Chamfer Corners</a>

然后我的脚本是:

$('#save').click(function(){
    var passOptions = new Array();
    var i=0;
    $('.selected').each(function(){
        passOptions[i] = $(this).attr('option');
        i++;
    });
console.log(passOptions);
$.ajax({
    type: "POST",
    url: "processsaveconfig.php?configid=<? echo $configid; ?>",
    data: { passOptionsArray : passOptions },
    success: function() {
        $('#pricediv').html(data);
    }
    });

});

我的 php 页面是:

    $passopts = $_REQUEST['passOptionsArray'];

mysql_connect($serverpath, $dbusr, $dbpass) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());

mysql_query("DELETE FROM se_config_opt_link
        WHERE se_config_opt_link.f_config_id = '$configid'");

foreach ($_POST['passOptions'] as $opts){

    mysql_query("INSERT INTO se_config_opt_link (f_config_id, f_opt_id)
        VALUES ('$configid', '$opts')");
};

在控制台选项卡中的 Firebug 中,我得到: ["1", "4", "7"] 但在“响应”选项卡中显示:


警告:第 17 行的 /home/users/c/companion/public_html/dynamic/builder_app/processsaveconfig.php 中为 foreach() 提供的参数无效b>

我被困住了。如果您能提供帮助,我将非常感激。

Been working on this dumb problem for two days now. If you can help I would sure appreciate it!

So my html goes like this:

<a class='selected' option ='2' category='1' price='1750.00'>Round Corners</a>
<a class='selected' option ='3' category='1' price='2200.00'>Chamfer Corners</a>

And then my script is:

$('#save').click(function(){
    var passOptions = new Array();
    var i=0;
    $('.selected').each(function(){
        passOptions[i] = $(this).attr('option');
        i++;
    });
console.log(passOptions);
$.ajax({
    type: "POST",
    url: "processsaveconfig.php?configid=<? echo $configid; ?>",
    data: { passOptionsArray : passOptions },
    success: function() {
        $('#pricediv').html(data);
    }
    });

});

My php page goes:

    $passopts = $_REQUEST['passOptionsArray'];

mysql_connect($serverpath, $dbusr, $dbpass) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());

mysql_query("DELETE FROM se_config_opt_link
        WHERE se_config_opt_link.f_config_id = '$configid'");

foreach ($_POST['passOptions'] as $opts){

    mysql_query("INSERT INTO se_config_opt_link (f_config_id, f_opt_id)
        VALUES ('$configid', '$opts')");
};

In Firebug in the Console tab I get: ["1", "4", "7"]
But in the Response tab it reads:

Warning: Invalid argument supplied for foreach() in /home/users/c/companion/public_html/dynamic/builder_app/processsaveconfig.php on line 17

I'm stuck. If you can help I would really be grateful.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

垂暮老矣 2024-12-13 03:47:04

在我看来,你正在寻找这个:

$('#save').click(function(){
    var passOptions = [];
    $('.selected').each(function(){
        passOptions.push($(this).attr('option'));
     });
console.log(passOptions);

在你的 PHP 中,使用类似这样的东西:

$myArray = $_POST['passOptionsArray'];
if (is_array($myArray)({

    ...

}

我希望这会有所作为。

It seems to me you're looking for this:

$('#save').click(function(){
    var passOptions = [];
    $('.selected').each(function(){
        passOptions.push($(this).attr('option'));
     });
console.log(passOptions);

in your PHP, use something like this:

$myArray = $_POST['passOptionsArray'];
if (is_array($myArray)({

    ...

}

I expect that will make the difference.

蓝礼 2024-12-13 03:47:04

foreach ($_POST['passOptions'] as $opts){... 不应该更像 foreach ($_POST['passOptionsArray'] as $opts){...< /代码>

Shouldnt the foreach ($_POST['passOptions'] as $opts){... be more like foreach ($_POST['passOptionsArray'] as $opts){...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文