如何在html中使用javascript运行php文件

如何在html中使用javascript运行php文件,javascript,php,html,Javascript,Php,Html,我有一个html和一些javascript,现在我想运行另一个php文件(test.php),而不显示或打开这个文件。这是循环的一部分,我试着: for(i = 1; i < length; i++){ var bname = table.rows[i].cells.item(0).innerHTML; var bvalue = table.rows[i].cells.item(1).innerHTML; loc

我有一个html和一些javascript,现在我想运行另一个php文件(test.php),而不显示或打开这个文件。这是循环的一部分,我试着:

for(i = 1; i < length; i++){
        var bname = table.rows[i].cells.item(0).innerHTML;  
        var bvalue = table.rows[i].cells.item(1).innerHTML;             
        location.href = "test.php?account="+account+"&key="+key+"&memo="+memo+"&bname="+bname+"&bvalue="+bvalue;
    }
但这似乎不起作用。 我还发现了使用ajax的提示,但我从未使用过它,也不知道如何将变量传递给test.php

谢谢你的帮助

您可以使用ajax

$.post("test.php",
    {
        account: account,
        key: key,
        memo:memo,
        bname:bname,
        bvalue:bvalue
    },
    function(data, status){
        alert("Data: " + data + "\nStatus: " + status);
    });

使用ajax将数据从javascript发送到php文件

vars="account="+account+"&key="+key+"&memo="+memo+"&bname="+bname+"&bvalue="+bvalue;
    var ajaxhr = new XMLHttpRequest();
        var url = "test.php";
        ajaxhr.open("POST", url, true);
        ajaxhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        ajaxhr.onreadystatechange = function() {
            if(ajaxhr.readyState == 4 && ajaxhr.status == 200) {
                var return_data = ajaxhr.responseText;

            }
        }
        ajaxhr.send(vars);

我发布此文章是为了获得一个详细的答案,以帮助PHP和Javascript方面。

我会使用jQuery+AJAX参考

Ajax非常适合向php发送数据、从php读取数据等

请花点时间看看我的参考资料,了解它是如何为将来的知识工作的

让我们进入代码

Ajax(Javascript-客户端):

var memoData = "Today is beautiful"; //Varible passed for ajax data
$.ajax({
    url : '/LocationToTestPHP/test.php', //Location to PHP File
    cache: false,
    type: 'POST', //Type of method - Remove this line for GET if required
    data: {account: "Welcome", key: "ValueHere", memo: memoData, bname: "ValueHere", bvalue: "ValueHere"} //Data to send to PHP
}).done(function(data) 
{
    //We check if PHP sent us back the correct data required here.
    if(data == "Success")
    {
        alert("Success! Data returned is: " + data);
    }
    else
    {
        alert("Error! We didnt get correct data back. Data: " + data);
    }
});
<?PHP
//Check for our value and return data
if($_POST['account'] == "Welcome") //Check if account has Welcome passed in..
{
    echo "Success";
}
else //Welcome is not provided
{
    echo "Account did not equal to Welcome :(";
}
?>
请注意,我为
memo
在ajax数据中提供了一个变量,这是 也有可能

PHP(服务器端)-test.PHP:

var memoData = "Today is beautiful"; //Varible passed for ajax data
$.ajax({
    url : '/LocationToTestPHP/test.php', //Location to PHP File
    cache: false,
    type: 'POST', //Type of method - Remove this line for GET if required
    data: {account: "Welcome", key: "ValueHere", memo: memoData, bname: "ValueHere", bvalue: "ValueHere"} //Data to send to PHP
}).done(function(data) 
{
    //We check if PHP sent us back the correct data required here.
    if(data == "Success")
    {
        alert("Success! Data returned is: " + data);
    }
    else
    {
        alert("Error! We didnt get correct data back. Data: " + data);
    }
});
<?PHP
//Check for our value and return data
if($_POST['account'] == "Welcome") //Check if account has Welcome passed in..
{
    echo "Success";
}
else //Welcome is not provided
{
    echo "Account did not equal to Welcome :(";
}
?>


我很快就把它打出来了,希望你能得到正确的想法!任何需要的帮助,请在下面评论:)

Ajax是一种好方法。顺便说一句,ajax与
xmlhttp
相同,只是使用了jQuery中更奇特的语法。即使你使用了它,而谷歌你会发现大量的例子。它是JS和PHP之间最常用的通信技术之一,即使在stackoverflow上,您也会发现1000人询问过它,并得到了很好的答案。看看那些;)XMLHttpRequest和ajax是完全相同的东西。但它应该可以工作:您是否检查了浏览器控制台/开发工具?您在网络选项卡中看到请求了吗?例如,您知道jQuery吗?看一看这里:这是为了你的帮助。看起来它部分起作用了。PHP代码被执行,但变量不会被发布。test.php上的另一个javascript代码也没有执行,但我认为这是因为javascript是客户端的,我说的对吗?您需要将php设置为使用POST(这里的答案可以使用)或GET。确保正确设置PHP以使用此ajax方法!制作一个简单的新test1.php,在其内部,如果要查找
$\u POST['account']
,请使用simple。现在,通过ajax将测试值传递到帐户中,并通过PHP进行比较检查,以确保它工作正常!通过php回显一些东西,如果一切正常,它将通过ajax的警报框显示!如果您回显“Worked!”,那么从ajax返回的数据应该显示“Worked!”。print\r($\u POST)的输出是什么;在test.php中?