我有一个foreach循环(php),我希望jquery发布每个$value
的数据。
当我创建变量
var description = $('#<?php echo $value;?>').val();
并且alert(description);
它工作正常,但当我尝试在$.ajax({.... });
内使用时,它只显示第一个值。
为什么?
代码:
$('#edit_<?php echo $bid;?>').click(function(){
<?php
foreach($Languages as $key => $value){
?>
var description = $('#<?php echo $value;?>').val();
alert(''+description+' - <?php echo $value;?>'); // <-- HERE ir alerts the right value
$.ajax({
url: "sqlx.php",
data: "description="+ description +"&file=<?php echo $image; ?>&client=<?php echo $client; ?>&kategory=<?php echo $xkatid; ?>&language=<?php echo $value;?>", // <-- in this line it sends only first $value
type: "post",
success: function(){
$('#ok<?php echo $bid;?>').fadeIn(100);
$('#ok<?php echo $bid;?>').fadeOut(1000);
window.setTimeout(function() {
$(".xclose<?php echo $bid;?>").trigger('click');
}, 800);
}
});
<?php } ?>
return false;
});
答案 0 :(得分:0)
将所有php vars放入javascript vars并在javascript中循环它们,而不是让php一遍又一遍地生成相同的javascript。
答案 1 :(得分:0)
如果您在服务器端循环,则存在重复的var定义(对于description
)
你最好在javascript中进行循环
var bid = <? echo json_encode($bid);?>;
var server_data = <? echo json_encode($Languages);?>;
$("#edit_"+bid).click(function(){
for(var i in server_data){
var value = server_data[i];
//here your ajax code enters while you have value and bid variables in the javascript
}
});
编辑:
只是注意到你还有image
,$client
等变量 - 你应该应用相同的方法,首先将值作为javascript vars,然后在javascript中使用它们