将变量从jQuery传递给PHP
我创建了一个脚本来读取哈希值(www.website.com/#hash)并将哈希值传递给php。 alert(hash)
弹出哈希值,但哈希值不会在post变量中回显。 知道为什么吗?
jQuery页面
var hash = location.hash; $.post("community.php", { hash: hash }); alert(hash);
Community.php页面
编辑 – 下面的$ _GET最初是$ _POST以上。
我有一个循环通过在函数中发布(发布ID)的foreach。 我需要将HASH传递给函数并将其与每次发布ID进行比较。 唯一的问题是,$ _GET [‘hash’]不会出现在函数内部。
function something() { echo $_GET['hash']; }
$ .post是一个ajax事件。 您正在通过ajax发布数据,因此该页面不会转到communitypage.php。 对于你想要的行为你必须做普通的表格发布而不是ajax发布。 $ .post将使用此代码检索您在communitypage.php上回显的任何内容。
//Note the 3rd argument is a callback. var hash = location.hash; $.post('communitypage.php',{hash:hash},function(data){ alert(data); });
在该页面上处理哈希并在找到哈希值时发出警告。 你会在data
找到回声
您可以修改communitypage.php
以返回html,如下所示
0){ echo "Hash found :: " . $_POST["hash"]; }else echo "No hash found"; ?>
注意这将返回html,您可以根据需要修改响应以返回xml,json。
有关详细信息,请参阅jQuery post()文档 。
对于更新的问题
它在外面工作,因为在函数内部调用ajax时调用它,因为函数没有被调用。 如果你想这样做(我不知道为什么),你可以这样做。
function myfunction(){ //your code goes here } myfunction(); //call the function so that the code in the function is called upon
虽然这是一种矫枉过正,除非你想在同一个脚本中反复调用该函数。 如果它在没有function的情况下工作,你应该这样做。
像这样使用ajax,以hashforms发送值
function send_hash(hash) { $.ajax({ url : "community.php", type : "POST", cache : false, data : { hash : hash } }); }
现在你会得到的
检查你的PHP响应:)
要么
在community.php中
$res=isset($_REQUEST['val'])?$_REQUEST['val']:'';
希望它会给你一些解决方案。
但是在post变量中没有回显哈希
这是因为如果你想在页面加载时发送它,那么你必须在doc ready
handler中使用它: