2014-03-12 171 views
0

我想在文档准备就绪时给一个PHP变量一个jQuery变量。我所拥有的是具有不同链接的各种价值的列表,我通过cURL通过外部网站获取。使用jQuery,我通过href链接获取值。所以我想要的是当文档准备好加载时,它应该将jQuery变量赋予一个php变量并进行回显。如何把jQuery变量放到一个PHP变量中

我有什么至今:

//Javascript.js 
$(document).ready(function() { 
var value = $("a[href='index.php?p=trading&m=42&b=BTC']:eq(3)").text(); 
$.ajax({ 
    url: "index.php", 
    type: "get", 
    data: value, 
    success: function(){ 
     alert("success"); 
     alert(value); 
    }, 
    error:function(){ 
     alert("failure"); 
    } 
}); 

alert(value); 
}); 

的值输出= 55.0

<a href="index.php?p=trading&m=42&b=BTC">55.0</a> //from cURL page 
<!-- index.php --> 
<?php 
$a = $_GET['value']; 
if($_GET['value'] == "") 
{ 
    echo("empty"); 
} 
else { 
    echo($a); 
} 
?> 

的GET/POST是成功的,但它并没有在PHP页面显示出来。希望任何人都得到了这个解决方案。

+0

和'echo'的输出,其中应该得到期望的结果?在同一页面中,您正在调用'ajax'函数? – anurupr

+0

是的,如果页面准备好加载 – Jordy144

+0

'data:value'时可以这样做,那么就是传递给PHP文件的内容,您需要一个响应对象,如下面的答案,它将持续来自PHP文件 –

回答

4

更改此:

data: value, 
success: function(){ 
    alert("success"); 
    alert(value); 
}, 

这样:

data: "value=" + value, 
success: function(response){ 
    alert("success"); 
    alert(response); 
}, 

您需要捕获来自index.php文件的响应(回波)和提醒。

附加信息:

<?php 
    if($_POST['value'] == "") 
    { 
     echo "empty"; 
    } 
    else { 
     echo $_POST['value'] ; 
    } 
    exit; 
?> 

而且在像上面的末尾添加exit;:看到整个index.php文件

将这个块在你的PHP文件的顶部,而不是底部后。

当你通过ajax调用这个php文件时,你不想执行其余的php文件,只需要执行if $_GET块中的部分。因此,这需要位于文件的顶部,退出之后退出,因此当请求为$_GET时,其余部分不会执行。

+0

的_returned_注意他没有在'data:value'中设置一个变量,意思是说,如果值是55.0 index.php?55.0,那么url就是这样的。所以它应该是这样的'data:“value =”+ value' – anurupr

+0

该响应给了我页面的整个源码 – Jordy144

+1

@anurupr好点,我会编辑我的答案。 – superphonic

1

试试这个

$(document).ready(function() { 
var value = $("a[href='index.php?p=trading&m=42&b=BTC']:eq(3)").text(); 
$.ajax({ 
    url: "index.php", 
    type: "post", 
    data: "value="+value, 
    success: function(result){ 
     alert("success"); 
     alert(result); 
    }, 
    error:function(){ 
     alert("failure"); 
    } 
}); 

alert(result); 
}); 


index.php 

$a = $_POST['value']; 
if($_POST['value'] == "") 
{ 
    echo "empty"; 
} 
else { 
    echo $a ; 
} 
+0

我的代码有什么问题? – VijaiJerald

+0

我没有投票给你,但它不起作用。请看我的index.php http://pastebin.com/m0vMvQ7G – Jordy144

0

你可以通过改变data:valuedata:{"value":value}

感谢