使用同一页面上的ajax将js变量传递给php

时间:2015-08-11 08:09:42

标签: javascript php ajax

这是我的HTML代码:

<form id="form" action="javascript:void(0)">
<input type="submit" id="submit-reg" value="Register" class="submit button" onclick="showtemplate('anniversary')" style='font-family: georgia;font-size: 23px;font-weight: normal;color:white;margin-top:-3px;text-decoration: none;background-color: rgba(0, 0, 0, 0.53);'>    
</form>

这是我的javascript代码:

function showtemplate(temp)
{
    $.ajax({
        type: "POST",
        url: 'ajax.php',
        data: "section="+temp ,
        success: function(data)
        {
            alert(data);
        }
    });  
}  

这是我的ajax.php文件:

<?php
$ajax=$_POST['section'];
echo $ajax;
?>

上面的html和javascript代码包含在名为slider.php的文件中。在我的索引文件中,我已经包含了这个slider.php文件,slider.php位于slider文件夹中。所以基本上index.php和slider.php不在同一个文件夹中。

Javascript代码可以正确地提醒数据。但是在我的php代码(ajax.php文件)中,$ _POST [&#39; section&#39;]的值为空。我的代码有什么问题。我尝试使用Google搜索所有内容并尝试了一些代码,但它仍然无法正常工作。请帮帮我

3 个答案:

答案 0 :(得分:2)

请改为尝试:

$.ajax({
        type: "POST",
        url: 'ajax.php',
        data: { 'section': temp},
        success: function(data)
        {
            alert(data);
        }
    }); 

您的服务器很可能无法理解您构建的字符串("section="+temp)。使用ajax时,我更愿意发送objects,因为object有效,需要使用某种格式。

<强> EDIT1:

试试这个并告诉我它是否也无效:

$.post('ajax.php', {'section': temp}, function(data}{
  alert(data);
});

答案 1 :(得分:0)

添加jquery插件(jQuery库),然后只有ajax调用工作 例如

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

检查您的输入数据,是否包含&#39;&amp;,/&#39; charators,然后使用encodeURIComponent()

用于Ajax Call Eg:

var gym_name =  encodeURIComponent($("#gym_name").val());
$.ajax({
type: "POST",
url: "abc.php",
data:string_array,
success: function(msg) {
console.log(msg);
 }
});

在abc.php中

<?php
$id = $_POST['gym_name'];
echo "The id is ".id;
?>

答案 2 :(得分:0)

尝试以下内容(虽然我无法理解为什么@ Grimbode的答案不起作用):

$("#submit-reg").on( "click", function() {
  $.ajax({
        type: "POST",
        url: 'ajax.php',
        data: {'section': 'anniversary'},
        success: function(data)
        {
            alert(data);
        }
    });
});

注意:我不知道您的底层代码在做什么。但是,我建议不要使用HTML元素属性来处理事件有多种原因,但要适当地分开JS /事件处理(单独的js文件(推荐)或内部<script>标签)。 Read more...