【问题标题】:Php variable not getting incremented in jqueryphp变量在jquery中没有增加
【发布时间】:2014-03-03 06:44:39
【问题描述】:

我想在 jquery 的 $.each 函数中增加 $j。但是$j 没有增加。可能是什么原因。我的代码如下:

$.ajax
    ({
        url : "test.php",
        type : "post",
        data : {
            "categoryIds" : categoryIds
        },
        dataType : "json",
        success : function(resp){
            var html = "";
            var i = 1;
            <?php $j = 1; ?>
            $.each(resp,function(key,questions ){
                <?php
                $j = 1;
                $testdataIndex  = "answer_".$j;
              ?>
              var test = "<?php  echo $testdataIndex?>";
             alert(test);
                         var res = "<?php echo $_SESSION['testdata'][$testdataIndex]; ?> ";
            var index = "<?php  echo $j++;?>";
            alert(index);
      });
});

每次test 将“answer_1”和index 打印为 1

【问题讨论】:

  • 当然不会,因为你的 PHP 在你的 jQuery 之前先执行,所以它总是会打印相同的值。您应该考虑将 PHP 变量保存到 JavaScript 中,然后将其递增。
  • 这是不可能的。你正在混合 php 和 jquery....
  • PHP 是服务器端,JS 是客户端。感受大不同。
  • var js_j = "&lt;?php echo $j ?&gt;"; js_j++;
  • 再次查看您的代码,您似乎正在使用计数器从您的SESSION 变量中检索不同的值,您应该查看AJAX,它允许您在不加载页面的情况下与 PHP 混合.

标签: php jquery ajax


【解决方案1】:

修复会话问题:

$.ajax
    ({
        url : "test.php",
        type : "post",
        data : {
            "categoryIds" : categoryIds
        },
        dataType : "json",
        success : function(resp){
            var html = "";
            var i = 1;
            <?php $j = 1; ?>
            $.each(resp,function(key,questions ){
               var testdataIndex  = "answer_" + i ;
               var  filename = "getsession.php?sessionName="+testdataIndex;
               $.get(filename, function (data) 
                     {
                        sessionValues = data;
                        $("#"+testdataIndex).text(sessionValues);
               });//get
               html += '<textarea class="form-control answer"  rows = "5"  style="width:127%;" id="answer_'+i+'" name="answer_'+i+'" required="required"></textarea>';
              i++;
      });//each
});//ajax

getsession.php

<?php
session_start();
$sessionName = $_GET['sessionName'];
print ($_SESSION['testdata'][$sessionName]);
?>

我已经为其他面临同样问题的人回答了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 2019-10-23
    • 1970-01-01
    • 2013-01-16
    • 2015-09-21
    • 1970-01-01
    相关资源
    最近更新 更多