我的PHP变量保持echo';正在获取相同的信息,而不是要获取的URL中的新数据


My PHP variable keeps echo'ing same info - not the new data in URL to grab

我遇到了一个问题,我成功地以mywebsite.com/contact/?的形式设置了一个URL变量?product=VAR1从一页到另一页,它将在第二页上用我的简单代码读取。

第一次使用是可以的,但之后的任何东西都不是。变量未被清除/重新读取/重置时出现问题。URL栏甚至在URL栏中读起来很好mywebsite.com/contact/?product=VAR2,以便第一部分工作。

但是,一旦存储了VAR1,代码就不想得到VAR2部分。它只是在加载一次后继续重新显示VAR1。

<?php echo htmlentities($_GET['product']); ?>

如果有区别,我成功地显示了?product=jQuery值更改器内部的信息,其中包含:

$(".input-text").val('<?php echo htmlentities($_GET['product']); ?>');

我尝试过自己的解决方案,比如放入unset($product)在最后一个?>之前但无济于事。

我对PHP/jQuery的了解有限,并且希望使用这种设置/获取变量的方式,因为它很简单。我在jQuery中使用它,因为它可以用传递的这个变量重写精确的表单输入框值,并成功地将其发送到我的CMS的联系人表单中。

-------------------------更新:添加代码---------------------------

(我只是按照我能想到的逻辑显示所有代码)

#1:将变量设置到URL中。第一个echogetURL显示url,我添加我的?product=,然后获取项目名称。这一切都很好。

<a href="<?php echo Mage::getURL('webforms/index/index/id/2') ?>?product=<?php echo $_product->getName(); ?>">

#2:我的表单是在我的CMS中设置的。它有一个特殊的类,所以我可以在jQuery中准确地选择它。我无法访问所有这些,它是由CMS生成的。其目的显然是通过该变量使选定的产品得到重新记忆,并以联系形式达到目的。

<div class="field webforms-fields-enquiryfield">
<label for="field_20">
Product in Enquiry
</label>
<div class="input-box">
<input type="text" name="field[20]" id="field[20]" class="input-text" style="" value="">                        
</div>
</div>

#3:现在我的区域要显示,&变量设置好后,我们使用jQuery将变量插入到输入文本表单的实际值中。我这样做是因为在我的CMS中,我无法简单地添加它。我必须使用jQuery来替换文本(无论如何,它都是空框)。

$(".webforms-fields-enquiryfield .input-text").val('<?php echo htmlentities($_GET['product']); ?>');

希望这更有意义。

我已经找到了答案,问题是CMS Magento喜欢缓存某些块-这就是为什么我可以先查看它,然后我的CMS会存储变量,但不会擦除它。无论我尝试了什么样的修复来禁用缓存,都不行。

相反,我最终使用了以下代码,使用了#变量和一些任何人都能理解的简单JavaScript。毫无疑问,我将在未来的项目中使用它!非常简单的变量传递。。。

if(window.location.hash) {
var hash_value = window.location.hash.replace('#', '');
  $("my-css-input-field-or-whatever-you-want").val(hash_value);
}

hash_value现在可以用多种方式使用,我想这在我的Magento设置中很好,它不会被缓存/存储。抓取URL位置&哈希。

(以及所使用的PHP,简化后任何人都可以在CMS中替换/重用)

<a href="[GetBaseURLfromCMS]#[MyDynamicVariableHere] ">