我想将带有Javascript的一个DIV标记中的数据和Text发送到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'];
}
它不起作用。没有出现!没有PHP工作!
我该如何解决这个问题?
答案 0 :(得分:5)
您已声明要执行以下操作:
我想发送一个DIV标记中的数据和文本 Javascript成为php值。
和
它不起作用。没有出现!没有PHP工作!
首先,您需要决定“出现”的含义。您是否尝试获取PHP脚本的结果并将其嵌入页面?
首先,让我们关注您的第一个项目,发送数据。请执行以下操作:
从您正在发布的帖子请求中删除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 + " '/>");
});
});
可读性是关键所在。这绝对是奇怪的,我从未见过有人这样做过。
注意我将您的班级从.html()更改为.text()。这是因为在此时您只使用文本节点而不是html给出示例代码。如果它实际上是html,那么你可以使用html()函数。
其次,您尝试访问的PHP脚本是直接嵌入的。 尝试将其移动到新文件,例如我上面的示例myPhpScript.php
在该文件中将是您的PHP代码,用于记录发布请求:
<?php
if (isset($_POST['name'])) {
echo $_POST['name'];
您在POST请求中缺少成功处理程序,因此当请求成功时,不会发生任何事情。请将以下内容添加到您的请求设置对象中。此时,您可以在准备就绪时执行以下操作
$(document).ready(function(){
$.post('http://localhost/test/myPhpScript.php', {
name: $('.class').html()}
,function(data){
$(".class").text(data).append("<input type='hidden' name='name' value=' " + hvalue + " '/>");
}
});
});
这应该让你开始,但请记住,也可能有其他问题。我在这里也有自己的问题。我要责怪缺少咖啡因和蹒跚学步的孩子,加上不要长时间打开文档,以确保我完美无缺:)。
有人善于编辑我的错误,所以我感谢你。
答案 1 :(得分:0)
这是因为您没有为$.post
请求指定成功处理程序。所以它只是返回一些HTML,就像你在后台一样,但你的JavaScript没有做任何事情。
请阅读http://api.jquery.com/jquery.post/上的API文档,并查看success(data, textStatus, jqXHR)
参数的$.post
部分。这是您定义成功处理程序的地方。
试试这个,你会明白我的意思:
$.post('http://localhost/test/index.php', {
name: $('.class').html()
}, function(data) {
alert(data);
});
在function(data) { ... }
中,您需要编写一些逻辑,以便它可以对您的数据执行某些操作。