gpt4 book ai didi

php - 当我使用变量后跟大于 9 的数字时,我的代码 (php/js) 会感到困惑

转载 作者:行者123 更新时间:2023-11-28 10:19:39 24 4
gpt4 key购买 nike

您好,我的问题出在我的 php/javascript 代码上。我的变量从 extra1 开始,到 extra 12 结束。

问题在于,有两位数字的 extra10 、 extra11 和 extra12 会使脚本感到困惑,就像只有 9 一样。

我的代码由多种形式组成,通过这个 javascript,我创建了一个更好的 url。它不是 mydomain.com/?extra1=&extra2=abs&extra3=def&extra4= 它创建这个 mydomain.com/?extra2=abs&extra3=def 以便 php 脚本从网址并继续。

在 extra9 之前,一切都适用于变量。

这是我的 JavaScript

<script type="text/javascript">
function formSubmit() {
var extra1 = document.getElementById('extra1');
var extra2 = document.getElementById('extra2');
var extra3 = document.getElementById('extra3');
var extra4 = document.getElementById('extra4');
var extra5 = document.getElementById('extra5');
var extra6 = document.getElementById('extra6');
var extra7 = document.getElementById('extra7');
var extra8 = document.getElementById('extra8');
var extra9 = document.getElementById('extra9');
var extra10 = document.getElementById('extra10');
var extra11 = document.getElementById('extra11');
var extra12 = document.getElementById('extra12');
if (extra1.value == '') {
extra1.parentNode.removeChild(extra1);
}
if (extra2.value == '') {
extra2.parentNode.removeChild(extra2);
}
if (extra3.value == '') {
extra3.parentNode.removeChild(extra3);
}
if (extra4.value == '') {
extra4.parentNode.removeChild(extra4);
}
if (extra5.value == '') {
extra5.parentNode.removeChild(extra5);
}
if (extra6.value == '') {
extra6.parentNode.removeChild(extra6);
}
if (extra7.value == '') {
extra7.parentNode.removeChild(extra7);
}
if (extra8.value == '') {
extra8.parentNode.removeChild(extra8);
}
if (extra9.value == '') {
extra9.parentNode.removeChild(extra9);
}
if (extra10.value == '') {
extra10.parentNode.removeChild(extra10);
}
if (extra11.value == '') {
extra11.parentNode.removeChild(extra11);
}
if (extra12.value == '') {
extra12.parentNode.removeChild(extra12);
}
return true;
}
</script>

这是提交的 php 中的代码,用于从 url 获取数据。它用在wordpress上,但是是通用的php编程

for ($i = 1; array_key_exists('extra'. $i, $_GET); $i++) {
$args['meta_query'][] = array(
'key' => 'extra'. $i,
'value' => $_GET['extra'. $i],
'compare' => '=',
);
}


$query = new WP_Query( $args );

正如我所说,对于变量 < 10 来说一切正常。

感谢您提供的信息

最佳答案

在您的代码中,任何空白的 extraXX 都会导致服务器端的 for 循环 退出。这意味着空白字段之后的任何 extraXX 字段都不会得到处理。为了解决这个问题,您确实应该使用输入数组(在 html 中将您的字段命名为 extra[] ),但如果您想保留当前拥有的所有代码,您可以这样做:

<?php
foreach ($_GET as $key => $value)
{
if (substr($key, 0, 5) == 'extra')
{
$args['meta_query'][] = array(
'key' => $key,
'value' => $value,
'compare' => '='
);
}
}

这将循环遍历每个 $_GET 参数并检查它是否包含 extra,如果存在,则将其添加到你的数组。

关于php - 当我使用变量后跟大于 9 的数字时,我的代码 (php/js) 会感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5889575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com