【问题标题】:php in jquery code possible?jquery代码中的php可能吗?
【发布时间】:2009-09-08 03:50:55
【问题描述】:

我有下面的jquery函数

$(function(){
  $("select#rooms").change(function(){
    $.getJSON("/admin/select.php",{id: $(this).val(), ajax: 'true'}, 
    function(j){
      var options = '';
      for (var i = 0; i < j.length; i++) {
        options += '<option value="' + j[i].optionValue + '">' 
        + j[i].optionDisplay + '</option>';
      }
      $("select#ctlPerson").html(options);
    })
  })
})

如您所见,我将两个值传递给 select.php。第二个值是硬编码文本。相反,我想发送一些动态值。我可以以某种方式在其中放置一个 php 变量并传递它吗?

基本上,我在下拉更改时调用后端脚本并传递其 id ..但在某些情况下,我会想要传递另一个值,该值也取决于下拉更改。

【问题讨论】:

  • 我不明白你的问题
  • 您引用的“动态值”从何而来?您不能从外部 php 传递 php 变量,但 php 和 js 将可以访问相同的资源,并且 select.php 可能能够自己获取数据。 (假设您没有传递客户端信息)

标签: php jquery


【解决方案1】:

您不能直接包含 PHP 会立即理解为变量的内容,但您可以使用 JSON 序列化您的 javascript 变量,然后在 PHP 中对其进行解析,将其转换回 PHP 知道如何处理的变量。

这适用于复杂数据,如数组或对象...对于简单值来说有点过头了,您可以从 PHP 中的 $_GET/$_POST 中获取。

【讨论】:

    【解决方案2】:

    你的意思是这样的:

    $(function(){
      var isAjax = '<?=isAjax?>';
      $("select#rooms").change(function(){
        $.getJSON("/admin/select.php",{id: $(this).val(), ajax: isAjax}, 
        function(j){
          var options = '';
          for (var i = 0; i < j.length; i++) {
            options += '<option value="' + j[i].optionValue + '">' 
            + j[i].optionDisplay + '</option>';
          }
          $("select#ctlPerson").html(options);
        })
      })
    })
    

    【讨论】:

      【解决方案3】:

      您可以将 jquery 选择的结果作为第二个参数值传递,就像第一个参数一样

      制定一个选择来抓取您需要的元素。它可能不是$(this).val() 项目,但可能是$('isAjax').val()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多