我有一个javascript函数,我试图将一些数据发送到另一个PHP脚本。我必须向php脚本发送一组值。我试图追加:javascript函数中的每个值,以便我可以使用implode来获取我的PHP脚本中的数组值。这是我的javascript函数。
$("#update-form").submit(function(e) {
$passdata = "";
<?php
for ($i=1; $i <= $total_columns - 1 ; $i++) {
printf('$passdata+=$("#slider%d").val().:;' . PHP_EOL, $i);
}
?>
if ($(this).is(':not([data-submit="true"])'))
{
$('form').append('<input type="hidden" name="foo" value="'+$passdata+'">');
$('form').data('submit', 'true').submit();
e.preventDefault();
return false;
}
})
我使用printf('$passdata+=$("#slider%d").val().:;' . PHP_EOL, $i);
但是,我无法在php脚本中看到变量。我也试过了,
printf('$passdata+=$("#slider%d").val()+=:;' . PHP_EOL, $i);
如何在我的javascript函数中将:附加到变量?
答案 0 :(得分:3)
看一下它在客户端生成的内容,那是有效的JavaScript吗?
$passdata+=$("#slider1").val().:;
JavaScript不会以这种方式进行字符串连接。
$passdata+=$("#slider1").val() + ":";
如果我是你,我会使用一个数组并加入()
$passdata.push($("#slider1").val());
而不是使它成为一个字符串
var myValue = $passdata.join(":");
更好的是,不要使用PHP来生成JavaScript!只需在元素上添加一个类,并使用带有map();
的单个选择器$(".myCommonClass").map( function(){ return this.value; }).get().join(":");
或者只是将多个表单元素名称发布到服务器并处理服务器上的多个值,就像表单始终有效一样。
答案 1 :(得分:2)
为什么不做这样的事情,而不是乱搞这种憎恶:
为所有滑块添加一个类。然后:
$(".sliderClassNameHere").map(function(x) {return x.value;}).get().join(":");
或者......只需提交滑块......?
答案 2 :(得分:1)
为什么不使用json?在PHP中,你使用json_encode(),将它放在隐藏的输入值中,然后在javascript中使用函数json_decode()对该值。这就是杰森的目的。