可能重复:
修改URL而不重新加载页面
我正在寻找一种方法,使用我当前的javascript动画使我的内部链接功能正常,而不会在您点击它们时导致页面重新加载 - 但我希望在浏览器中更新URL.
许多网站都这样做,这是一个很好的例子:http://grooveshark.com/#!/ search?q = adf
如何在没有页面重新加载的情况下获取更新URL?
更多细节:
目前我的页面上的链接看起来像<a href="#aboutus">About Us</a>
,这将带您<div id="aboutus"></div>
通过javascript.
javascript看起来像:
$("#navigation a").click(function(e){
animate(..scroll to section..);
e.preventDefault(); // <==========
});
Run Code Online (Sandbox Code Playgroud)
我相信"e.preventDefault()"是导致URL不被更新的原因,但是如何在更改URL时阻止浏览器重新加载页面?
其他网站如何做到这一点?这种方法叫什么(所以我可以进一步研究它)?
谢谢.
我正在寻找一种组合jquery变量的方法.通过相关问题,没有人似乎在尝试我想做的事情.
$("body, div, p")
是一种由选择器组合的方法,但是在为变量分配选择器之后,如何以类似的方式组合它们?
这是我尝试过的一种方法,但没有让它起作用.我也尝试将它们放入一个数组中(只需在$ body和$ p之后添加括号).
$body = $("body");
$div = $("div");
$p = $("p");
$mixed = $($body, $div, $p);
// $mixed = $("body, div, p"); is NOT what I am looking for
Run Code Online (Sandbox Code Playgroud)
在我的实际脚本中,我有一些<select>
输入分配给变量.我想将它们分组,所以说我有一个<select>
"FRUIT"和另一个有"VEGETABLES",我可以将它们都放入一个名为"PRODUCE"的jquery变量中.然后,如果我需要在两者上执行任何操作,我会使用产品代替.
......但这可能只是一种愚蠢的做事方式.
在该add_to_cart
功能期间,有一个过滤器可以添加"购物车项目数据".过滤器是woocommerce_add_cart_item_data
.我希望将自定义插件数据存储在此中,以便相对于项目存储数据,并且可以使用不同的数据添加多个产品.
这一切似乎都有效,但我无法检索数据.我无法弄清楚.数据在那里,我可以在序列化的字符串中看到它,但我不能把它拉出来.
echo '<pre>';
var_dump( WC() );
foreach( WC()->cart->get_cart() as $cart_item ) {
var_dump( $cart_item );
var_dump( WC()->cart->get_item_data( $cart_item ) );
}
echo '</pre>';
Run Code Online (Sandbox Code Playgroud)
第一个转储WC()
有一个属性:session->_data->cart->(serialized data)
.但是,_data属性受到保护,但我可以在序列化数据中看到我的自定义字段.
$ cart_item是一个包含product_id
和其他一些数据的数组,但它不包含我的自定义数据:(
最后,使用get_item_data()
我认为我已经弄明白的方法.我传递了购物车项目对象,并且...一个空字符串.如果我传递密钥,而不是购物车项目本身,则相同.
我该如何访问购物车商品数据?
这是"添加购物车项目数据"功能,它起作用(或者至少看起来有效):
function save_class_menu_selection( $cart_item_data, $product_id, $variation_id ) {
if ( !product_is_class( $product_id ) ) return $cart_item_data;
// Save the date, or give a fatal warning. Date is required.
if ( !empty($_REQUEST['class-date']) ) {
$cart_item_data['class-date'] = stripslashes($_REQUEST['class-date']); …
Run Code Online (Sandbox Code Playgroud) 我们正在尝试调试服务器上的一些cURL错误,我希望看到STDERR日志.目前,我们所能看到的错误是"错误代码:7",我们无法连接到目标服务器.我们已经联系了主机并制定了特殊规则来打开我们需要的端口,我们甚至暂时忽略了证书.
不过,我们无法连接.我需要调试这个,但我看不到任何相关的信息.
我认为,提及"VERBOSE"和"STDERR"的路线是最重要的.没有任何内容写入$ curl_log.我究竟做错了什么?遵循手册逻辑,这应该是正确的......
<?php
$curl = curl_init();
$curl_log = fopen("curl.txt", 'w');
$url = "http://www.google.com";
curl_setopt_array($curl, array(
CURLOPT_URL => $url, // Our destination URL
CURLOPT_VERBOSE => 1, // Logs verbose output to STDERR
CURLOPT_STDERR => $curl_log, // Output STDERR log to file
CURLOPT_SSL_VERIFYPEER => 0, // Do not verify certificate
CURLOPT_FAILONERROR => 0, // true to fail silently for http requests > 400
CURLOPT_RETURNTRANSFER => 1 // Return data received from server
));
$output = fread($curl_log, 2048);
echo $output; …
Run Code Online (Sandbox Code Playgroud) 我看到警报窗口和新行有很多不同的问题.大多数是\n
在PHP中被认为是新行,而不是被发送到javascript.
在我的例子中,字符串正在显示的新窗口中输出\n
.我只是尝试\n
通过jsfiddle 写入一个警告框,这很有用,所以它一定是我做事的方法......
这是返回控制台的字符串.如你所见,\n肯定存在:
Username is required\nPassword is required\nEmail is required\nPhone is required\nCardnumber is required
但是,它显示如下:
为什么会这样?我认为这可能与数据类型有关,因为它是从中返回的$.ajax
if (canAjax && !try_ajax) {
e.preventDefault();
$.ajax({
type: "POST",
url: "mobilesubmit.php",
data: {"use_ajax": true, "formdata": $("#register_form").first().serializeArray()},
success: function(data) {
// This stupid thing should make new lines!
alert(data);
console.log(data);
},
error: function (request, status, error) {
try_ajax = true;
$("#register_form").submit();
}
});
}
Run Code Online (Sandbox Code Playgroud) 我们有一个高分辨率PDF(用于打印),其上有一些表格字段.我们希望有一个提交到PDF的HTML表单,然后将其放入相应的字段中.
我在谷歌找到了一个解决方案:http://koivi.com/fill-pdf-form-fields/
但是,使用该解决方案,您只能获得一个FDF文件......并且该演示对我不起作用,打开FDF文件只需下载另一个FDF文件.
由于此PDF将向公众开放,我们希望尽可能简单.如果我们必须打开原始PDF并导入这个FDF文件,我们需要一个不同的解决方案(我不确定FDF文件的用途,因为它不起作用).
一篇关于.net框架的相关帖子也有同样的想法,但只有付费商业解决方案:从HTML表格到PDF
到目前为止我找到的PHP解决方案是用于创建一个新的PDF,这不是我需要的.我们的PDF是使用Adobe Illustrator(或类似的adobe产品)创建的,并且具有嵌入字体,svg和图像内容的高分辨率.
表单元素到位,我们只需要将数据存入其中.
我正在构建一个 CSV 导出工具。几个月来它一直运行良好,但我们最近遇到了几个由单元格“爆炸”引起的额外线条的情况。
我已将问题缩小到 PHP(7.2.21 和其他版本)中的一个错误。我需要解决这个问题。下面是重现问题的 PHP 脚本。它在每个单元格中包含逗号和换行符:
<?php
$data = array(
array( 'ID', 'Name', 'Content', 'Date' ),
array( 34, 'Radley', 'This is <strong>bold text</strong>, and' . "\r\n" . 'a second line, the first time', '2019-08-23' ),
array( 47, 'John', 'This a <a href=\"http://example.org/\">link</a>' . "\r\n" . 'a second line, again', '2019-08-24' ),
array( 65, 'Bob', 'This plain text, with no html, and lots of commas'. "\r\n" . 'and a third extra row', '2019-08-25' ),
);
$fh = fopen('php://output', 'w'); …
Run Code Online (Sandbox Code Playgroud) 我需要一种跨浏览器的方式来绑定浏览器的本机滚动条的滚动事件.
$("html,body")似乎适用于firefox,而$(window)似乎适用于IE.
有没有更好的方法来使用正确的版本而不是试错?如果可能的话,我也想检测移动滚动.
我正在使用jquery的parseJSON()函数将json字符串插入到变量中.问题是,它将我的数据转换为对象而不是2d数组.例如,
myData = $.parse(JSON(data));
myData.name// = "Bob"
Run Code Online (Sandbox Code Playgroud)
问题是,"名称"不应该是一个关键(假设这是正确的术语).相反,它应该是:
myData[0] // = "name"
myData[1] // = "Bob"
Run Code Online (Sandbox Code Playgroud)
我怎么转换这个?或者有一种不同的方法,而不是使用for循环遍历数组的索引(但仍然能够像字符串一样访问键和值,就像在二维数组中一样).
编辑:这是一些正在使用的json(注意它的时间更长).这就是"数据"的内容
{"feat_3":"4356","feat_4":"45","feat_5":"564","feat_6":"7566"}
Run Code Online (Sandbox Code Playgroud) 作为一种学习体验,我正在尝试创建自己的面向对象的小控制台调试脚本.我希望它类似于jQuery,因为你可以将它称为函数(jQuery('div')
)或对象(jQuery.ajax()
).
我有下面的代码几乎正常工作.它基本上是"console.log"的别名.
我的目标是能够执行以下操作:
var log = new RadDebug;
// Create our function
log('You selected: %s', fruit_type);
// Invoke the top-level function
// Output: You selected: "Apple"
log.warn('You selected: %s', fruit_type);
// Invoke a method "warn", which displays a caution icon next to the log.
// Output: (!) You selected "Apple"
Run Code Online (Sandbox Code Playgroud)
我正在处理的脚本:
function RadDebug() {
var debug_enabled = (debug_mode && window.console && window.console.log instanceof Function);
// If this object was already initialize, redirect …
Run Code Online (Sandbox Code Playgroud) 我有一个类和类的类别列表。我想显示每个类别有多少个类。像这样的东西:
category | # of classes
Sports | 12
Fitness | 32
Climbing | 8
Run Code Online (Sandbox Code Playgroud)
该表的设置使每个类都位于包含类别的行上。
category | class_name
fitness | Learn to Skate
Run Code Online (Sandbox Code Playgroud)
我有以下 SQL,它生成不同类别的列表:
select
distinct category
from classes
order by category asc
; Output:
; Fitness
; Climbing
; Recreation
; ...
Run Code Online (Sandbox Code Playgroud)
我还想显示有多少个类。我认为这很简单:
select
distinct category,
count(distinct category)
from classes
order by category asc
; Output:
; Fitness | 11
Run Code Online (Sandbox Code Playgroud)
输出几乎有效,但它只产生一行。没有count()
它,它会产生 11 行,正如预期的那样。为什么这只产生一行?我怎样才能做到这一点?