javascript$.post将参数传递到外部PHP文件


javascript $.post pass parameter to external PHP file

我有

enter code here
function ajaxFunction(){
var ajaxRequest;  // The variable that makes Ajax possible!
try{
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
} catch (e){
    // Internet Explorer Browsers
    try{
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e){
            // Something went wrong
            alert("Your browser is too old to run me!");
            return false;
        }
    }
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
    $.post('userfind.php', function(data) {

    document.getElementById("myTable").style.display = "block"; 
    var x=document.getElementById("myTable");
    for (var i = 0; i < data.length; i++) { 
    var row=x.insertRow(-1);
    var cell1=row.insertCell(-1);
    var cell2=row.insertCell(-1);
    ...
    ...

和php

enter code here
<?php 
session_start();
$username = "XXXXXXXX";
$password = "XXXXXXXX";
$database = "XXXXXXXX";
$link = mysql_connect("localhost", "$username", "$password");
if(!$link) {echo("Failed to establish connection to mysql server");
         exit();}
$status = mysql_select_db($database);

$oId = mysql_real_escape_string($_POST["order_IDsearch"]);

if (isset($order_IDsearch)){
$result = mysql_query ("SELECT * FROM personal_info WHERE  order_id= '".$oId."' ");
$myjsons = array();
while($row = mysql_fetch_assoc($result)){ 
$myjsons[] = $row;
}
echo json_encode($myjsons);
}
?>

如果我删除SQL条件,javascript将显示该表,标记if并标记$post

如果我离开php,它就不会显示表格,如您所见,

php页面帮助有什么问题,请


这是整个javascript ajax函数

enter code here
function ajaxFunction(){
var ajaxRequest;  // The variable that makes Ajax possible!
try{
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
} catch (e){
    // Internet Explorer Browsers
    try{
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e){
            // Something went wrong
            alert("Your browser is too old to run me!");
            return false;
        }
    }
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){


    $.post('userfind.php', {orderId:"order_IDsearch"}, function(data) {
    var obj = $("#myTable").show();
    var x = obj.get(0);
    for (var i = 0; i < data.length; i++) { 
    var row=x.insertRow(-1);
    var cell1=row.insertCell(-1);
    ...
    ...

   cell1.innerHTML = "<b><input name='edit' type='button' onClick='editRow(this)' value='Edit' />    <input name='del' type='button' onClick='delRow(this)' value='Del' /></b>";
   cell2.innerHTML =  data[i].user_id;
   cell3.innerHTML =  data[i].first_name ;
   ....
   ....  
 }},'json');}
    }
   ajaxRequest.open("POST", "userfind.php", true);
   ajaxRequest.send(null); 
    }

这让我很困惑,请帮我修改代码,我应该重新编写代码吗?这个代码可以修改吗?

您没有从$.post向php文件传递任何内容。。。

让它像

$.post('userfind.php', {order_IDsearch: "your data"}, function(data){
// your implementation
});

这应该有效。。。

如果你的订单_IDsearch是动态的,那么就这样做吧

$.post('userfind.php', {yourData:order_IDsearch}, function(data){
    // your implementation
    });

在PHP方面,您必须在中访问它

$_POST['yourData'];

发送多个值

$.post('userfind.php', {key1:value1,key2:value2,...}, function(data){
        // your implementation
        });

Aditya Parab确实回答了您的问题,但我必须插入一些您需要理解的jQuery基础知识。

你可以(也应该)戏剧性地简化你的功能。所有ajaxRequest的内容,代码的前20行左右,都是在不使用jQueryAjax时使用的。这些东西被内置到jQuery中,你不必这么做。

此外,在jQuery中,您可以通过声明var object = $('#objectId').get(0)来获取对象的ID。您不需要document.getElementsById()


简化功能


function ajaxFunction(){
    $.post('userfind.php', {var1: "value 1"}, function(data) {
        var obj = $("#myTable").show();
        var x = obj.get(0); //Get the JS object from the jQuery Object
        for (var i = 0; i < data.length; i++) {
            var row=x.insertRow(-1);
            var cell1=row.insertCell(-1);
            var cell2=row.insertCell(-1);
        }
        ...
        ...
    });
}