使用jQuery Ajax将javascript变量发送到PHP脚本

我正在尝试使用ajax将JavaScript变量发送到php脚本。 这是我第一次使用ajax,我不知道哪里出错了。 这是我的代码</ p>

  function selectcat(v){
$ .ajax({

type:“GET”,
url:“myurl.php”,

dataType:“script”,
data:{“selected_category”:v}
})。done(function(){
window.location.href =“http://mywebsite.com”;

});
}
</ code> </ pre>

感谢所有帮助</ p>

这是HTML </ p>
\ n

 &lt; ul class =“cat”&gt; 
&lt; li class =“opt”onclick =“selectcat('option1')”&gt; option1&lt; / li&gt;
&lt; li class =“ opt“onclick =”selectcat('option2')“&gt;选项2&lt; / li&gt;

&lt; / ul&gt;
</ code> </ pre>

这是ajax php file </ p>

 &lt;?php 
session_start();
$ ctgry = $ _GET ['selected_category'];
$ _SESSION ['select_cat'] = $ ctgry;

?&gt;
</ code> </ pre>
</ div>

展开原文

原文

I'm trying to send a JavaScript variable to a php script using ajax. This is my first time using ajax and I don't know where I went wrong. Here's my code

function selectcat(v) {
        $.ajax({

        type: "GET",
        url: "myurl.php",
        dataType: "script",
        data: { "selected_category" :  v}
    }).done(function() { 
    window.location.href = "http://mywebsite.com";

    });
        }

All help is appreciated

Here's the HTML

<ul class="cat">
<li class="opt" onclick="selectcat('option1')">option1</li>
<li class="opt" onclick="selectcat('option2')">Option 2</li>

</ul>

This is the ajax php file

<?php
session_start();
$ctgry = $_GET['selected_category'];
$_SESSION['select_cat'] = $ctgry;
?>

dongyinzhi4689
dongyinzhi4689 哈哈..数字..我们将等待。
5 年多之前 回复
douzhi1972
douzhi1972 好。在我测试之后,我会回复你们。我现在在课堂上
5 年多之前 回复
donglun2010
donglun2010 我发布了一个答案检查出来。
5 年多之前 回复
douqiaotong8682
douqiaotong8682 我添加了php代码
5 年多之前 回复
dpdbu24262
dpdbu24262 那你的问题可能在PHP。提供您的PHP代码
5 年多之前 回复
douyi7283
douyi7283 我没试过也试过了
5 年多之前 回复
dongmaoluan5719
dongmaoluan5719 删除dataType:“script”
5 年多之前 回复
douling1936
douling1936 我添加了html
5 年多之前 回复
doubo4824
doubo4824 我认为你想要的是一个可靠的例子,其中一个php文件使用jQueryAJAX然后接收一些数据并用它做一些事情。听起来对吗?
5 年多之前 回复
ds261634878
ds261634878 请提供您的选项的html,以便我们可以看到您是否正确执行。还提供PHP处理发送信息的方式。
5 年多之前 回复
douxia1988
douxia1988 v是从单击的元素接收的参数
5 年多之前 回复
dpje52239
dpje52239 当你说“试图发送一个JavaScript变量”时,我假设你在代码中的某个地方有一个你想传递的定义变量。如果是这样,那么你只需要将它放在一个对象中并通过数据方法发送它。但是我没有看到你所说的这个变量,而是我看到“v”..假设这是你的变量,这不是发送到你的PHP?
5 年多之前 回复
dqj29136
dqj29136 页面上有很多选项,所有选项都点击调用ajax函数。我需要用户点击的值,但我不想使用单选按钮。然后我需要将值放在php变量中,这是ajax脚本的作用
5 年多之前 回复
drz5553
drz5553 如果您在成功函数中重定向到另一个页面,则使用ajax没有多大意义。您能否提供更多关于您正在做什么以及如何调用该函数的信息/上下文?究竟出了什么问题?
5 年多之前 回复

4个回答



您需要删除 dataType:“script”</ code>,因为您只是发送数据。 这样做:</ p>

  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 “;
});
}
</ code> </ pre>
</ div>

展开原文

原文

You need to remove dataType: "script" since you are just sending data. Do it like this:

 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";
        });
 }

doumuyu0837
doumuyu0837 geez,看起来有人在那里发布了模板答案..无论如何..所以你试图删除那一行,问题仍然存在......你的PHP看起来很好......还有其他一些问题。 你的myurl.php文件在哪里? 它与您的脚本位于同一目录中吗?
5 年多之前 回复



您好我这样做是为了调用ajax请求
您可以使用以下代码发布数据或加载文件:</ p>

  $(“#button click or any other”)。click(function(){
try
{
$ .post(“my php page address”,
{

'状态':'6',
'var one':$(“#myid或.class”)。val()。trim(),
'var 2':'var 2'
} ,function(data){
data = data.trim();
// alert(data);
//这个数据是服务器发送的数据,如果是ajax请求你可以发送 任何类型的数据,无论是json或json数组还是任何其他类型的数据

} ;;
}
catch(ex)
{
alert(ex);
} \ n});
</ code> </ pre>

我希望这有帮助!</ p>
</ div>

展开原文

原文

Hi this is what I do to call an ajax request You can post data or load a file using following code:

 $("#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);
    }
  });

I hope this help!

duanluanlang8501
duanluanlang8501 太多的代码..保持简单s
5 年多之前 回复

AJAX is easier than it sounds. You just need to see a few good examples.

Try these:

A simple example

More complicated example

Populate dropdown 2 based on selection in dropdown 1


The above examples demonstrate a few things:

(1) There are four formats for an AJAX request - the full $.ajax() structure, and three shortcut structures ($.post(), $.get(), and $.load() )

Until you are pretty good at AJAX, I suggest using a correctly formatted $.ajax() code block, which is what the above examples demonstrate. Such a code block looks like this:

$('#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;
            }
        }
    });
});

(2) In an $.ajax() code block, the data: line specifies the data that is sent to the PHP processor file.

(3) The dataType: line specifies the type of data that the ajax code block expects to receive back from the PHP processor file. The default dataType is html, unless otherwise specified.

(4) In the PHP processor file, data is returned to the AJAX code block via the echo command. Whether that data is returned as html, text, or json, it is echoed back to the AJAX routine, like this:

<?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;

Please try a couple of the above examples for yourself and you will see how it works.

It is not necessary to use json to send/return data. However, json is a useful format to send array data, but as you can see, you can construct a full html response on the PHP side and echo back the finished markup.


So, you just need to echo back some data. It is the job of the PHP file to:

(1) receive the data from the AJAX routine,

(2) Use that data in a look up of some kind (usually in a database),

(3) Construct a response, and

(4) echo (NOT return) the response back to the AJAX routine's success: or .done() functions.


Your example could be changed to look something like:

HTML:

<ul class="cat">
    <li class="opt" value="TheFirstOption">option1</li>
    <li class="opt" value="The Second Option">Option 2</li>
</ul>

javascript/jQuery:

$('.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:

<?php
    $val = $_POST['selected_category'];
    echo 'You selected: ' . $val;
duanlu1876
duanlu1876 是的先生..他们要么都需要GET,要么都是POST
5 年多之前 回复
douyue8364
douyue8364 Oi yoi! 你是对的 - 感谢抓住这个明显的错误。 那一定是CodieGodie告诉我的...... - 修正一个人讨厌把所有的时间花在答案上,只是因为一个愚蠢的错误而把它完全吹掉
5 年多之前 回复
douyun1852
douyun1852 您在JS和PHP之间存在不匹配,在使用GET的JS上,在PHP中,您尝试从POST读取所选类别
5 年多之前 回复
donglengli0644
donglengli0644 不是POST,它应该是PHP中的GET
5 年多之前 回复



dataType:“script”</ code>在这里没有意义,我想你想要 json </ code >或者将其留空。</ p>

如果您尝试使用 $ _ GET ['selected_category'] </ code> </ p>
获取变量,您的PHP脚本应该可以工作

我建议你这个修改来帮助你自己调试</ p>

  $。ajax({
type:“GET”,
url:“myurl.php “,
data:{”selected_category“:v},
success:function(data){
console.log(data);
//你也可以在这里进行重定向(或者在下面完成)
},
完成:函数(数据){
//当请求完成时,独立于成功或错误。
},
错误:函数(数据){
//向用户显示内容
console.error(data);
}
})
</ code> </ pre>
</ div>

展开原文

原文

dataType: "script" has no sense here, I think you want json or leave it empty.

Your PHP script should work if you try to get the variable with $_GET['selected_category']

I suggest you this modification to help yourself for debugging

$.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);
    }
})

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐