使用jQuery Ajax向PHP脚本发送javascript变量
我正在尝试使用ajax将JavaScript变量发送到php脚本。这是我第一次使用ajax,我不知道哪里出了问题。这是我的密码使用jQuery Ajax向PHP脚本发送javascript变量,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在尝试使用ajax将JavaScript变量发送到php脚本。这是我第一次使用ajax,我不知道哪里出了问题。这是我的密码 function selectcat(v) { $.ajax({ type: "GET", url: "myurl.php", dataType: "script", data: { "selected_category" : v} }).done(function() {
function selectcat(v) {
$.ajax({
type: "GET",
url: "myurl.php",
dataType: "script",
data: { "selected_category" : v}
}).done(function() {
window.location.href = "http://mywebsite.com";
});
}
谢谢你的帮助
这是HTML
<ul class="cat">
<li class="opt" onclick="selectcat('option1')">option1</li>
<li class="opt" onclick="selectcat('option2')">Option 2</li>
</ul>
选项1
选项2
这是ajax php文件
<?php
session_start();
$ctgry = $_GET['selected_category'];
$_SESSION['select_cat'] = $ctgry;
?>
嗨,这就是我调用ajax请求的方法 您可以使用以下代码发布数据或加载文件:
$("#button click or any other event").click(function(){
try
{
$.post("my php page address",
{
'Status':'6',
'var one':$("#myid or .class").val().trim(),
'var 2':'var 2'
}, function(data){
data=data.trim();
// alert(data);
// this data is data that the server sends back in case of ajax request you
//can send any type of data whether json or or json array or any other type
//of data
});
}
catch(ex)
{
alert(ex);
}
});
我希望这有帮助 您需要删除
数据类型:“script”
,因为您只是在发送数据。这样做:
function selectcat(v) {
$.ajax({
type: "GET",
url: "myurl.php",
data: {"selected_category": v}
}).done(function(result) {
console.log(result);
//window.location.href = "http://mywebsite.com";
});
}
$('#divID').click({
$.ajax({
type: 'post',
url: 'contact.php',
dataType: 'json',
data: 'email=' + form.email.value
}).done(function(data) {
if ( typeof(data) == 'object' ) {
if ( data.status == 'valid') {
form.submit();
} else if(data.status !=='valid' {
alert('The e-mail address entered is wrong.');
return false;
} else {
alert('Failed to connect to the server.');
return false;
}
}
});
});
<?php
//perform MySQL search here. For eg, get array $result with: $result['firstname'] and $result['lastname']
$out = '<div id="myresponse">';
$out .= 'First Name: <input type="text" value="' .$result['firstname']. '" />';
$out .= 'Last Name: <input type="text" value="' .$result['lastname']. '" />';
$out .= '</div>';
echo $out;
dataType:“script”
在这里没有意义,我认为您需要json
或者将其留空
如果您尝试使用$\u get['selected\u category']
我建议您进行此修改以帮助自己进行调试
$.ajax({
type: "GET",
url: "myurl.php",
data: { "selected_category" : v},
success: function(data){
console.log(data);
// you can also do redirection here (or in complete below)
},
complete: function(data){
// when request is done, independent of success or error.
},
error: function(data){
// display things to the user
console.error(data);
}
})
AJAX比听起来容易。你只需要看几个好例子 试试这些:
上面的例子说明了一些事情: (1) AJAX请求有四种格式—完整的
$.AJAX()
结构和三种快捷方式结构($.post()
、$.get()
、和$.load()
)
在您精通AJAX之前,我建议您使用格式正确的$.AJAX()
代码块,这就是上面的示例所演示的。这样的代码块如下所示:
function selectcat(v) {
$.ajax({
type: "GET",
url: "myurl.php",
data: {"selected_category": v}
}).done(function(result) {
console.log(result);
//window.location.href = "http://mywebsite.com";
});
}
$('#divID').click({
$.ajax({
type: 'post',
url: 'contact.php',
dataType: 'json',
data: 'email=' + form.email.value
}).done(function(data) {
if ( typeof(data) == 'object' ) {
if ( data.status == 'valid') {
form.submit();
} else if(data.status !=='valid' {
alert('The e-mail address entered is wrong.');
return false;
} else {
alert('Failed to connect to the server.');
return false;
}
}
});
});
<?php
//perform MySQL search here. For eg, get array $result with: $result['firstname'] and $result['lastname']
$out = '<div id="myresponse">';
$out .= 'First Name: <input type="text" value="' .$result['firstname']. '" />';
$out .= 'Last Name: <input type="text" value="' .$result['lastname']. '" />';
$out .= '</div>';
echo $out;
(2) 在$.ajax()
代码块中,数据:
行指定发送到PHP处理器文件的数据
(3) dataType:
行指定ajax代码块希望从PHP处理器文件接收回的数据类型。除非另有规定,否则默认数据类型为html
(4) 在PHP处理器文件中,数据通过echo
命令返回到AJAX代码块。无论该数据是以html、文本还是json的形式返回,它都会echo
返回到AJAX例程,如下所示:
function selectcat(v) {
$.ajax({
type: "GET",
url: "myurl.php",
data: {"selected_category": v}
}).done(function(result) {
console.log(result);
//window.location.href = "http://mywebsite.com";
});
}
$('#divID').click({
$.ajax({
type: 'post',
url: 'contact.php',
dataType: 'json',
data: 'email=' + form.email.value
}).done(function(data) {
if ( typeof(data) == 'object' ) {
if ( data.status == 'valid') {
form.submit();
} else if(data.status !=='valid' {
alert('The e-mail address entered is wrong.');
return false;
} else {
alert('Failed to connect to the server.');
return false;
}
}
});
});
<?php
//perform MySQL search here. For eg, get array $result with: $result['firstname'] and $result['lastname']
$out = '<div id="myresponse">';
$out .= 'First Name: <input type="text" value="' .$result['firstname']. '" />';
$out .= 'Last Name: <input type="text" value="' .$result['lastname']. '" />';
$out .= '</div>';
echo $out;
javascript/jQuery:
<ul class="cat">
<li class="opt" value="TheFirstOption">option1</li>
<li class="opt" value="The Second Option">Option 2</li>
</ul>
$('.opt').click(function(){
var v = $(this).val();
$.ajax({
type: "POST",
url: "myurl.php",
dataType: "html",
data: { "selected_category" : v}
}).done(function(data) {
$('#div_to_insert_the_response').html(data);
});
});
<?php
$val = $_POST['selected_category'];
echo 'You selected: ' . $val;
PHP:
<ul class="cat">
<li class="opt" value="TheFirstOption">option1</li>
<li class="opt" value="The Second Option">Option 2</li>
</ul>
$('.opt').click(function(){
var v = $(this).val();
$.ajax({
type: "POST",
url: "myurl.php",
dataType: "html",
data: { "selected_category" : v}
}).done(function(data) {
$('#div_to_insert_the_response').html(data);
});
});
<?php
$val = $_POST['selected_category'];
echo 'You selected: ' . $val;
如果在success
函数中重定向到另一个页面,那么使用ajax没有多大意义。您能提供更多关于您正在做什么以及如何调用函数的信息/上下文吗?到底出了什么问题?@jeroen页面上有一堆选项,它们都可以点击调用ajax函数。我需要用户单击的值,但我不想使用单选按钮。然后我需要将该值放入一个php变量中,这就是ajax脚本所做的。当您说“尝试发送JavaScript变量”时,我假设您的代码中有一个定义的变量,您希望传递该变量。如果是这种情况,那么您只需要将其放入一个对象中,并通过data
方法发送它。。然而,我没有看到你提到的这个变量,而是看到了“v”。。假设这是您的变量,这不是发送到您的php吗?@CodeGodie v是从元素clickedhaha接收到的参数。。数字。。我们会等的。天啊,好像有人在那里发布了一个模板答案。。不管所以你试着移除那条线,但问题仍然存在。。。你的PHP看起来不错。。一定还有别的问题。你的myurl.php
文件在哪里?它是否与脚本位于同一目录中?JS和PHP之间存在不匹配,在JS上使用GET,在PHP中尝试从中读取所选类别POST@AgustinMu尼奥斯爱你!你说得太对了——谢谢你抓住了那个明显的错误。那一定是CodieGodie告诉我的…!-修正了一个讨厌把所有的时间都花在一个答案上,却因为一个愚蠢的错误而彻底失败的人是的,先生。。它们要么都需要被获取,要么都需要发布