从jquery到php的变量,反之亦然

时间:2013-08-02 12:14:16

标签: php jquery ajax

我试图通过使用AJAX将变量从jquery传递到php,反之亦然,但是不能这样做!我看了几十个类似的问题和例子,仍在努力解决同样的问题。

这是我尝试将变量传递给php的部分。

在main.js中

$(document).ready(function(){
  doSearch();
});

function doSearch(){
  var inID = $('#inID').val();
  var memInd = $('#memInd').val();
  var t1 = $('#t1').val();
  var t2 = $('#t2').val();
  alert("ID: "+inID+"memIND: "+memInd);
  $.ajax({
    type: "POST",
    url: "index.php",
    data: { inID: inID, memInd: memInd , t1: t1, t2: t2} 
  });
}

的index.php:

$inID = $_POST["inID"];
echo $inID

4 个答案:

答案 0 :(得分:0)

你错过了引号,

data: { "inID": inID, "memInd": memInd , "t1": t1, "t2": t2}

答案 1 :(得分:0)

dataType: "HTML"更改为dataType: "json"并让我知道它是否有效:) (或者只是将该行完全删除为$ .ajax自动检测)

此外,$.post()的语法比$ .ajax短,如果你没有做任何花哨的事情,那么你可以使用以下

$.post("index.php", { inID: inID, memInd: memInd , t1: t1, t2: t2});

当你参与其中时,最好引用你的参数作为Sudip Pal提及,但如果你的参数名称是严格的字母数字则不是必需的。

调试第1轮

doSearch() Javascript功能更改为以下内容:

function doSearch(){
    var inID = "inIdValue";
    var memInd = "memIndVal";
    var t1 = "t1Val";
    var t2 = "t2Val";
    alert("ID: "+inID+"memIND: "+memInd);
    $.post("index.php",
        {
            inID: inID, memInd: memInd , t1: t1, t2: t2
        },
        function(data) {
            $('body').html(data);
            $('body').append('<button onclick="doSearch()">Reload</button>');
        }
    );
}

将文件备份为index2.php,然后删除index.php中的所有内容并将其全部替换为以下内容(只需复制并粘贴):

<?php
echo "<pre>";
print_r($_POST);
die("</pre>");
?>

然后请粘贴结果:)

答案 2 :(得分:0)

试试这个

脚本:

$.ajax({
          type: "POST",
          url: "index.php",
          dataType: "json",
          data: { inID: inID, memInd: memInd , t1: t1, t2: t2} ,
          success : function(res){
             alert(res.inID);
          }
       });

在php文件中

echo json_encode($_POST);

希望它会有所帮助

答案 3 :(得分:0)

问题是我将.js包含在我运行ajax函数的同一个php-page中,该页面从UI输入接收($ _POST)值。我做了一个单独的search.php页面来接收值,一切正常。我最终也使用了jquery post()

的较短语法
        $.post('search.php',{id:id, mem:mem, t1:t1, t2:t2},function(res){
            $("#result").html(res);
        });