0

我有一个 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;
    }); 
4

2 回答 2

0

将所有 php vars 放入 javascript vars 并在 javascript 中循环它们,而不是让 php 一遍又一遍地生成相同的 javascript。

于 2012-08-17T13:21:12.820 回答
0

如果您在服务器端循环,则存在重复的 var 定义(for 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 中使用它们

于 2012-08-17T13:24:25.333 回答