Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
使用javascript将数据发送到PHP_Javascript_Php - Fatal编程技术网

使用javascript将数据发送到PHP

使用javascript将数据发送到PHP,javascript,php,Javascript,Php,我想用Javascript将一个DIV标记中的数据和文本发送到php值中 我在使用此代码时遇到问题: <html> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> <script> $.post('http://localhost/test/index.php', { name: $('.class').html()});

我想用Javascript将一个DIV标记中的数据和文本发送到php值中

我在使用此代码时遇到问题:

<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
<script>
    $.post('http://localhost/test/index.php', {
        name: $('.class').html()});
        $(document).ready(function(){
            $("#my_form").on("submit", function () {
                var hvalue = $('.class').text();
                $(this).append("<input type='hidden' name='name' value=' " + hvalue + " '/>");
            });
    });
</script>
<form action="" method="POST" id="my_form">
    <div class="class" name="name">
        this is my div
    </div>
    <input type="submit" value="submit" name="submit" />
</form>

<?php
if (isset($_POST['name'])) {
    echo $_POST['name'];
}

$.post($)http://localhost/test/index.php', {
名称:$('.class').html()});
$(文档).ready(函数(){
$(“#我的表格”)。在(“提交”,函数(){
var hvalue=$('.class').text();
$(此)。追加(“”);
});
});
这是我的部门

这是因为您没有为
$.post
请求指定成功处理程序。所以它所做的只是返回一些HTML,就像你在后台看到的一样,但是你的JavaScript并没有用它做任何事情

请阅读上的API文档并检查
成功(数据、textStatus、jqXHR)
部分参数到
$。post
。这就是您定义成功处理程序的地方

试试这个,你就会明白我的意思:

$.post('http://localhost/test/index.php', {
    name: $('.class').html()
}, function(data) {
    alert(data);
});

函数(data){…}
中,您需要编写一些逻辑,以便它对您的数据进行处理。

这是因为您没有为
$.post
请求指定成功处理程序。所以它所做的只是返回一些HTML,就像你在后台看到的一样,但是你的JavaScript并没有用它做任何事情

请阅读上的API文档并检查
成功(数据、textStatus、jqXHR)
部分参数到
$。post
。这就是您定义成功处理程序的地方

试试这个,你就会明白我的意思:

$.post('http://localhost/test/index.php', {
    name: $('.class').html()
}, function(data) {
    alert(data);
});

函数(数据){…}
中,您需要编程一些逻辑,以便它对您的数据进行处理。

您已声明要执行以下操作:

我想发送一个DIV标记中的数据和文本 将Javascript转换为php值

它不起作用。什么也没有出现!没有php工作

首先,你需要决定“出现”是什么意思。您是否试图获取PHP脚本的结果并将其嵌入到页面上

首先,让我们关注您的第一项,发送数据。请执行以下操作:

从正在进行的post请求中删除onReady语句。这令人困惑,并可能导致意外结果:

 $.post('http://localhost/test/index.php', {
        name: $('.class').html()});
        $(document).ready(function(){
            $("#my_form").on("submit", function () {
                var hvalue = $('.class').text();
                $(this).append("<input type='hidden' name='name' value=' " + hvalue + " '/>");
            });
    });
$.post('http://localhost/test/index.php', {
名称:$('.class').html()});
$(文档).ready(函数(){
$(“#我的表格”)。在(“提交”,函数(){
var hvalue=$('.class').text();
$(此)。追加(“”);
});
});
可读性是这里的关键。这看起来非常奇怪,我从未见过有人这样做

注意,我将您的类从.html()更改为.text()。这是因为在给定示例代码的情况下,此时只处理文本节点,而不是html。如果它实际上是html,那么可以使用html()函数

第二,您尝试使用的PHP脚本是直接嵌入的。 尝试将其移动到一个新文件,如上面的示例myPhpScript.php

在该文件中是您的PHP代码,其中包含post请求字段:

<?php
    if (isset($_POST['name'])) {
    echo $_POST['name'];

您已声明要执行以下操作:

我想发送一个DIV标记中的数据和文本 将Javascript转换为php值

它不起作用。什么也没有出现!没有php工作

首先,你需要决定“出现”是什么意思。您是否试图获取PHP脚本的结果并将其嵌入到页面上

首先,让我们关注您的第一项,发送数据。请执行以下操作:

从正在进行的post请求中删除onReady语句。这令人困惑,并可能导致意外结果:

 $.post('http://localhost/test/index.php', {
        name: $('.class').html()});
        $(document).ready(function(){
            $("#my_form").on("submit", function () {
                var hvalue = $('.class').text();
                $(this).append("<input type='hidden' name='name' value=' " + hvalue + " '/>");
            });
    });
$.post('http://localhost/test/index.php', {
名称:$('.class').html()});
$(文档).ready(函数(){
$(“#我的表格”)。在(“提交”,函数(){
var hvalue=$('.class').text();
$(此)。追加(“”);
});
});
可读性是这里的关键。这看起来非常奇怪,我从未见过有人这样做

注意,我将您的类从.html()更改为.text()。这是因为在给定示例代码的情况下,此时只处理文本节点,而不是html。如果它实际上是html,那么可以使用html()函数

第二,您尝试使用的PHP脚本是直接嵌入的。 尝试将其移动到一个新文件,如上面的示例myPhpScript.php

在该文件中是您的PHP代码,其中包含post请求字段:

<?php
    if (isset($_POST['name'])) {
    echo $_POST['name'];

使用调试器。例如,Chrome或Opera中的一款。它包含漂亮的“网络”选项卡,显示所有正在进行的通信。您可以查看回调是否完成,以及返回了什么。加载页面时,脚本已尝试启动post请求。至少要等到页面加载完毕后再这样做。现在,您正在发送post请求,并包含一个来自您的DOM的值,该值甚至还不存在。此脚本需要认真重构,因为即使您的PHP设置正确,它也无法执行预期的操作。我会尝试在我的答案中解决这个问题。@Zarathuztra php是可以的。谢谢你的回答。如果“加载很快结束”,这并不重要。您的过帐代码在加载时立即执行。因为它是在DOM完成加载之前加载的,所以post请求将失败。您需要将执行延迟到加载完成后。请使用调试器。例如,Chrome或Opera中的一款。它包含漂亮的“网络”选项卡,显示所有正在进行的通信。您可以查看回调是否完成,以及返回了什么。加载页面时,脚本已尝试启动post请求。至少要等到页面加载完毕后再这样做。现在,您正在发送post请求,并包含一个来自您的DOM的值,该值甚至还不存在。此脚本需要进行认真的重构,因为它无法运行