繁体   English   中英

在$(php)中使用JQuery变量

[英]Using JQuery variable inside $( php)

我有一个像这样的ajax帖子

  var ht = $.ajax({
   type: "GET",
    url: "http://localhost/FormBuilder/index.php/forms/viewChoices/"+attribute_id,
    async: false
   }).responseText;

      var myObject = eval('(' + ht + ')');


   var data = myObject;var j=0;

 alert(data.choices);//alerts the choices as object

   $(""+<?php echo $form->input('field', array('type' => 'radio','legend'=>$r['Attribute']['label'],'separator' => '--separator--',
            'options' => array() ));?>+"").appendTo("#"+<?=$r['Attribute']['id'];?>);

在最后一行中,我在JQUery中创建一个单选按钮,向我展示了图例的正确性,但是我尝试使用data.choices,它是PHP数组内的一个JQuery变量,即在“ options” => array()中所以???

您正在将服务器端语言(PHP)与客户端语言(JavaScript / jQuery)混淆。 当您的服务器处理PHP代码时,它会完全忽略JavaScript代码,这只是它的普通文本。 然后,在请求被处理并发送到客户端之后,他的浏览器开始解释JavaScript,但是这次它没有访问PHP变量的权限(因为响应是从PHP代码生成的HTML)。

我想我不完全理解您的问题,如果您需要PHP处理代码,则需要使用AJAX从JavaScript调用它,然后处理结果。 如果要在生成站点内容时生成此单选按钮,则应仅依赖PHP变量并使用它们来创建按钮。

只是为了向您说明您的代码行:

$(""+<?php echo $form->input('field', 
                             array('type' => 'radio',
                                   'legend'=>$r['Attribute']['label'],
                                   'separator' => '--separator--',                    
                                   'options' => array() ));?>
  +"").appendTo("#"+<?=$r['Attribute']['id'];?>);

如果PHP分别回显了“ text1”和“ text2”。 你将会拥有

$("" + text1 + "").appendTo("#"+text2);

将会失败,因为这些不是变量名。 在页面上查看资源,以查看要下载到浏览器中的内容。

另外,考虑在隐藏变量中设置PHP值,然后从JavaScript引用它。 混合服务器和客户端代码通常会非常混乱。 被称为吊牌汤

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM