Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不加载页面的情况下将jquery值传递给php_Php_Jquery - Fatal编程技术网

如何在不加载页面的情况下将jquery值传递给php

如何在不加载页面的情况下将jquery值传递给php,php,jquery,Php,Jquery,我想在不重新加载页面的情况下将jquery值“selected”传递给fetchdata.php。 我该怎么做 这是我的密码: <!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></scrip

我想在不重新加载页面的情况下将jquery值“selected”传递给fetchdata.php。 我该怎么做

这是我的密码:

<!DOCTYPE html>
<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" 
        type="text/javascript"></script>

        <script src="http://code.jquery.com/ui/1.9.1/jquery-ui.min.js" type="text/javascript">
        </script>
        <script>
            $(document).ready(function() {
                $("#buttonClass").click(function() {
                    getValueUsingClass();
                });
            });
            function getValueUsingClass() {

                var chkArray = [];

                $(".chk:checked").each(function() {
                    chkArray.push($(this).val());
                });

                /* we join the array separated by the comma */
                var selected;
                selected = chkArray.join('#') + "#";

                if (selected.length > 1)
                {
                    $.ajax({
                        url: "fetchdata.php", //This is the page where you will handle your SQL insert
                        type: "GET",
                        data: "val=" + selected, //The data your sending to some-page.php
                        success: function()
                        {
                            console.log("AJAX request was successfull");
                        },
                        error: function()
                        {
                            console.log("AJAX request was a failure");
                        }
                    });

                    //alert("You have selected " + selected); 
                } else
                {
                    alert("Please at least one of the checkbox");
                }
            }
        </script>
    </head>
    <body>
        <div id="checkboxlist">
            <div><input type="checkbox" value="1" class="chk"> Value 1</div>
            <div><input type="checkbox" value="2" class="chk"> Value 2</div>
            <div><input type="checkbox" value="3" class="chk"> Value 3</div>
            <div><input type="checkbox" value="4" class="chk"> Value 4</div>
            <div><input type="checkbox" value="5" class="chk"> Value 5</div>
            <div>
                <input type="button" value="Get Value Using Class" id="buttonClass"> 
            </div>
</html>

$(文档).ready(函数(){
$(“#按钮类”)。单击(函数(){
getValueUsingClass();
});
});
函数getValueUsingClass(){
var chkArray=[];
$(“.chk:checked”)。每个(函数(){
chkArray.push($(this.val());
});
/*我们加入由逗号分隔的数组*/
选择var;
selected=chkArray.join(“#”)+“#”;
如果(选定。长度>1)
{
$.ajax({
url:“fetchdata.php”,//这是处理SQL插入的页面
键入:“获取”,
数据:“val=“+selected,//您发送到some-page.php的数据
成功:函数()
{
log(“AJAX请求成功”);
},
错误:函数()
{
log(“AJAX请求失败”);
}
});
//警报(“您已选择”+已选择);
}否则
{
警告(“请至少选中一个复选框”);
}
}
值1
价值2
价值3
价值4
价值5
fetchdata.php

<?php
    foreach($_GET['val'] as $r)
    {
        print_r($r);
    }
?>
<?php 
$valArray = explode('@',$_GET['val']); 
foreach($valArray as $val){
echo $val."<br/>";
}
?>


我正在使用GET方法接收数据,并使用for each循环打印数组,但我没有在PHP文件中获取任何值。

如下更改ajax函数,确保fectdata.PHP位于同一文件夹中或提供正确的路径

$.ajax({
    url: 'fetchdata.php',
    type:'GET',
    data: {val:selected},
    success: function(data) {
        console.log("AJAX request was successfull");
    }
}); 

更改ajax函数,如下所示,并确保fectdata.php位于同一文件夹中或提供正确的路径

$.ajax({
    url: 'fetchdata.php',
    type:'GET',
    data: {val:selected},
    success: function(data) {
        console.log("AJAX request was successfull");
    }
}); 

检查脚本的路径是否正确:

url: 'fetchdata.php',

此脚本是否在您的文档根目录中?

检查脚本路径是否正确:

url: 'fetchdata.php',

此脚本是否在文档根目录中?

在代码中更改以下内容, 在fetchdata.php中

<?php
    foreach($_GET['val'] as $r)
    {
        print_r($r);
    }
?>
<?php 
$valArray = explode('@',$_GET['val']); 
foreach($valArray as $val){
echo $val."<br/>";
}
?>
在按钮后面包括div,如

<div id="resultDiv"></div>

更改代码中的以下内容:, 在fetchdata.php中

<?php
    foreach($_GET['val'] as $r)
    {
        print_r($r);
    }
?>
<?php 
$valArray = explode('@',$_GET['val']); 
foreach($valArray as $val){
echo $val."<br/>";
}
?>
在按钮后面包括div,如

<div id="resultDiv"></div>



使用
打印($\u GET)
查看$\u GET中的内容request@user2376463,作为提示,最好确保代码的格式正确。这样可以更容易地发现错误和小问题!这可能有点夸大其词,但我建议您使用NetBeans之类的工具进行PHP开发工作,然后大量使用其代码格式化工具。确保所选内容具有valueUse
print\r($\u GET)
以查看$\u GET中的内容request@user2376463,就像一个头像,最好确保代码的格式正确。这样可以更容易地发现错误和小问题!这可能有点夸大其词,但我建议您使用NetBeans之类的工具进行PHP开发工作,然后大量使用其代码格式化工具。确保selected的值为+1,但他可能应该直接使用chkArray而不是selected,他不应该吗?仍然没有改进(顺便说一句,以下内容总是正确的:
(selected.length>1)
检查您是否至少选择了一个应该执行的
if(chkArray.length>0)
而不是字符串
selected
,该字符串始终至少有一个字符(#)更新:抱歉,您选择了>1,所以它应该可以执行
数据:{val:chkArray},
并查看firebug console+1中发生的情况,但他可能应该直接使用chkArray而不是selected,不是吗?仍然没有任何改进…(顺便说一下,以下内容始终正确:
(selected.length>1)
检查您是否至少选择了一个您应该执行的操作
如果(chkArray.length>0)
而不是选择的字符串
总是至少有一个字符(#)更新:抱歉,您这样做了>1,所以它应该可以工作,我将执行
数据:{val:chkArray},
并查看firebug ConsoleEyes中发生的情况,在firebug console中检查该文件是否正确调用。您的代码似乎没有任何问题,我在这里得到ajax响应。@Linkmichiel请用示例告诉我更多信息使用相对于根目录的路径。例如:如果脚本位于目录中“buttons”,然后您还必须将fetchdata.php指向该目录,url:“buttons/fetchdata.php”您还可以使用绝对路径,url:“http://domain.com/buttons/fetchdata.php”是的,在firebug控制台中检查该文件是否名为properly。您的代码似乎没有任何错误,我在这里得到ajax响应。@Linkmichiel请用示例告诉我更多信息使用相对于根目录的路径。例如:如果脚本位于“buttons”目录中,则您还必须将fetchdata.php定向到该目录,url:“buttons/fetchdata.php”您还可以使用绝对路径,url:“http://domain.com/buttons/fetchdata.php”Hi@srividhya没有更改..:(但是firebug控制台说“Ajax请求成功”在按钮后添加一个div标记。数据将在divHi@srividhya中打印,没有变化。)(但是firebug控制台说“Ajax请求成功”在按钮后添加一个div标记。数据将在div中打印。)