我想通过

var x = 10; drupal / PHP变量$x没有页面刷新.

谁有人建议?

非常感谢你的答复.
实际上我正在为电子商务网站(Drupal 6)开发自定义模块.
在产品页面上,我有4个属性作为文本字段(宽度英寸,宽度英尺,高度英寸,高度英尺)通过做一些计算,我得到了该产品的新价格.我在j查询中做了那个计算.
现在我改变“uc_add_to_cart_form”并添加1个隐藏字段,并使用$_SESSION将jquery新价格带入该隐藏字段.到目前为止一切正常.

我想将这个新价格保存到产品节点.我无法将此新价格设置为$node->价格.
我使用uc_ajax_cart“添加到购物车”按钮.

任何人都可以建议我怎么办?

将可变数据从 JavaScript传递到Drupal / PHP是一回事.将Drupal / PHP中的信息传递给JavaScript是另一回事.我认为你的意思是你问题中的第一个.所以我会继续回答这个问题.

将变量从JavaScript传递到Drupal / PHP

1)实现menu hook.您可以在现有的自定义模块或新自定义模块上执行此操作,这取决于您正在执行的操作.它非常简单直接,在Drupal网站上也有很好的文档记录.

$items = array();

  $items['my_custom_callback/%'] = array(
    'title' => 'My Custom Callback','description' => 'Listing of blogs.','page callback' => 'my_custom_PHP_function','page arguments' => array(1),'access arguments' => array('access content'),'type' => MENU_CALLBACK,);

让我们分解上面的例子.

$项目[ ‘my_custom_callback /%’]

$items只是一个数组,它可以命名任何你喜欢的名字.如果我的网站的URL是www.alexanderallen.name,那么http://www.alexanderallen.name/my_custom_callback将是我从我的JavaScript应用程序调用的资源.

在数组的键中,单词my_custom_callback之后的百分比符号是占位符.这是您将数据从JS传递到PHP的地方.因此,如果变量x的值为10,则来自JQuery的调用将如下所示:

http://www.alexanderallen.name/my_custom_callback/10

当您加载该URL时,Drupal将找到您的菜单挂钩,它将调用您在“页面回调”数组键中定义的函数.在这种情况下,将是:

<?PHP
/**
* Function that gets called from JQuery asynchronously. 
*/
function my_custom_PHP_function($argument) {
  // Do something with $argument...
  echo $argument;
}
?>

在那里,您可以使用变量x的值执行任何操作,例如将其存储在数据库中.

如果您将菜单挂钩放在自定义模块上,并且模块的名称是example_module,则菜单挂钩和自定义PHP回调将如下所示:

<?PHP
/**
* @file example_module.module Handles fancy AJAX functionality.
* 
*/

/**
* Implementation of hook_menu
*
* @see http://api.drupal.org/api/drupal/developer--hooks--core.PHP/function/hook_menu/6
*/
function example_module_menu() {
  $items = array();

  $items['my_custom_callback/%'] = array(
    'title' => 'My Custom Callback',);

  return $items;
}

/**
* Function that gets called from JQuery asynchronously. 
*/
function my_custom_PHP_function($argument) {
  // Do something with $argument...
  echo $argument;
}

?>

如果您想将多个变量从JQuery传递到Drupal / PHP,您可以考虑在将它们传递给PHP之前在JavaScript中对它们进行JSON化.请记住,如果有效负载非常大,您应该考虑使用JQuery .post()而不是.get().用于解码JSON的PHP函数是here on php.net.

不要忘记在example_module_menu()函数的末尾返回$items.如果您想将两个或多个参数从JavaScript传递给PHP,那么菜单项看起来类似于:

function example_module_menu() {
  $items = array();

  $items['my_custom_callback/%/%/%'] = array(
    'title' => 'My Custom Callback','page arguments' => array(1,2,3),);

  return $items;
}

function my_custom_PHP_function($arg1,$arg2,$arg3) {
  // Do something ...
  $sum = $arg2 + $arg3;

  echo "Hi". $arg1 .",X + Z = ". $sum;
}

?>

在这种情况下,我将三个参数传递给PHP. ‘page arguments’指定要传递给PHP的URL部分.如果你要写’page arguments’=> array(0),那么你的PHP函数的参数就是字符串my_custom_callback.

2)使用JQuery从JS代码调用菜单钩子. JQuery提供了各种AJAX方法.您使用哪一个取决于您处理的数据格式及其大小等.

您很可能会使用两种JQuery方法之一. .post()或.get(),请记住,发布请求将允许比获取请求更大的数据有效负载.因此,如果变量x = 10的大小,您可能希望坚持使用.get(). .post()和.get()方法都是.ajax()方法的扩展或依赖于.ajax()方法. .ajax()方法更灵活,因为它为您提供了更多选项,例如指定数据格式(JSON或纯文本)的能力,发送用户名/密码以及请求,在同步或异步之间进行选择请求,以及浏览器是否应该缓存请求.

这是JQuery .get()方法的方法签名:

jQuery.get(url,[data],[callback(data,textStatus,XMLHttpRequest)],[dataType])

如果您要使用GET将数据发送到Drupal / PHP,使用上面的示例,您可以执行以下操作:

<script type='text/javascript'>
    var name = 'alexander';  
    var x = 10;
    var z = 20;

    $.get( 
      // Callback URL.
      "http://www.alexanderallen.name/my_custom_callback/"+ name +"/"+ x +"/"+ z
    );

    </script>

请注意,.get()方法中data参数的使用是可选的,在我的示例中,我省略了它,但通过连接数据以将其传递给Drupal / PHP与URL的其余部分实现了相同的效果.

如果我要运行它,HTTP GET请求将如下所示:

http://www.alexanderallen.name/my_custom_callback/alexander/10/20

并且响应看起来像:

嗨亚历山大,X Z = 30

将数据从Drupal传递到JavaScript

为此,你会使用行为,我不会进入细节,因为我认为这不是你的问题,但你可以去Drupal 6行为here的官方文档.

php – 如何将jquery变量传递给drupal(ajax)的更多相关文章

  1. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  2. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. HTML5数字输入仅接受整数的实现代码

    这篇文章主要介绍了HTML5数字输入仅接受整数的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  4. amaze ui 的使用详细教程

    这篇文章主要介绍了amaze ui 的使用详细教程,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  5. html5简介_动力节点Java学院整理

    这篇文章主要介绍了html5简介,用于指定构建网页的元素,这些元素中的大多数都用于描述网页内容,有兴趣的可以了解一下

  6. ios – 如何从变量访问属性或方法?

    是否可以使用变量作为Swift中方法或属性的名称来访问方法或属性?在PHP中,您可以使用$object->{$variable}.例如编辑:这是我正在使用的实际代码:解决方法你可以做到,但不能使用“纯粹的”Swift.Swift的重点是防止这种危险的动态属性访问.你必须使用Cocoa的Key-ValueCoding功能:非常方便,它完全穿过你要穿过的字符串到属性名称的桥,但要注意:这里是龙.

  7. iOS &gt;&gt;块&gt;&gt;更改块外部的变量值

    我不是在处理一个Object并改变它,就像我的mString一样.我希望’center’属性的行为类似于myInt,因为它是直接访问的C结构,而不是指向对象的指针.我希望’backgroundColor’的行为类似于我的imstring,因为它是一个指向一个新对象的对象的指针,不是吗?

  8. ios – Xcode Bot:如何在post触发器脚本上获得.ipa路径?

    我正在使用机器人来存档iOS应用程序,我需要获取.ipa产品路径才能将其发布到我们的分发系统中.机器人设置:并使用脚本打印所有env变量,其中不包含ipa文件的路径.此外,一些变量指向不存在的目录,即:XCS_OUTPUT_DIR这里的env变量输出:除此之外,我还能够确认.ipa文件是在另一个文件夹中创建的(/IntegrationAssets//

  9. ios – 使用附加字符串本地化Info.plist变量

    我正在尝试本地化应用程序的名称,同时仍然能够根据构建配置追加字符串.所以目前它被设置为:该设置定义为:通过这种方式,我们可以为应用程序添加后缀以用于不同的beta版本.问题是,当我们尝试本地化本地化的InfoPlist.strings中的应用程序显示名称时,就像这样我们覆盖存储在Info.plist中的值,并丢失后缀字符.这有什么好办法吗?

  10. iOS – 开始iOS教程 – 变量之前的下划线?

    这是正确的还是我做错了什么?

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部