Jquery发布多个选择值

时间:2014-08-31 16:07:09

标签: php jquery post mysqli

以下代码在您发出警报时工作正常(例如,它会说" 1,2"如果选择了选项1和2),但是当我尝试使用jquery发布它时到数据库,它只是输出"数组"。我试过在它上面使用toString,我觉得这可能会有所帮助,但它似乎并没有。 plugin工作正常,所以我认为发布它的方式一定是错误的。

如何让它以逗号(例如&#34; 1,2&#34;)的形式向数据库发布选择的值,就像它在发出警报时一样,而不是&#34;数组&#34;?< / p>

HTML

<select id='category' class='category' multiple='multiple'>
    <option value='0'>Nothing</option>
    <option value='1'>Option 1</option>
    <option value='2'>Option 2</option>
    <option value='3'>Option 3</option>
</select>

运行插件:

$(function(){
$(".category").multiselect();
});

发送到数据库:

$('.category').change(function() {
var selected = $(this).val();
alert(selected);
    $.post('update_db.php', {
    content : selected,
    id : <?php echo $getid;?>,
    set : "column_heading"
    })
});

update_db.php适用于除此多项选择之外的所有内容。

$where = $_POST['id'];
$content = $_POST['content'];
$set = $_POST['set'];
mysqli_query($my_db,"UPDATE my_table SET " . $set . "='" . $content . "' WHERE id=" . $where);

1 个答案:

答案 0 :(得分:1)

您似乎以数组的形式将数据发送到服务器。当你在php中将数组转换为字符串时,它最终将成为字符串"Array"

如果您有一个数组变量$array,并使用连接(放在一起)运算符.将其附加到字符串,它可能无法按预期执行:

$array = array(1, 2, 3);
$foo = 'foo ' . $array; // 'foo Array'

这里更大的问题是您使用字符串连接创建SQL查询,这使您可以对SQL injection开放。您应该考虑使用PDO或其他允许准备查询的抽象层,或者使用转义。