为什么数据没有从ajax传递到php
why is data not being passed from ajax to php
我使用以下表单
<form id="dataForm" method="post">
<h2 id="formheader"> Update Description</h2>
<div>
<label>Product Name:</label>
<input class="inputForm" id="orginalName" type="text" name="Name">
</div>
<div>
<label>New Description:</label>
<input class="inputForm" id="newDescription" type="text" name="description">
</div>
<div id="theSubmit">
<button id="editDesButton">Submit</button>
</div>
</form>
</section>
以及以下javascript函数
function editDescription(){
xmlhttp = new XMLHttpRequest();
var name = document.getElementById("orginalName");
var Description = document.getElementById("newDescription");
var data_seen = false;
// this is a flag to record whether any data has been seen. Used in the guard ofthe alert statement.
if (name.value !="" && Description.value !=""){
data_seen = true;
xmlhttp.open("POST","editDescription.PHP",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("Name=" + name.value + "&Description=" + Description.value);
}
if (!data_seen) {
alert("please enter some data");
}
}
submitButton = document.getElementById("editDesButton");
submitButton.addEventListener("click", editDescription);
和这个php 的小部分
$Name = $_POST['Name'];
$Description = $_POST['description'];
if($Name !="" && $Description !=""){
$sql = "UPDATE PRODUCTS SET P_Description = '$Description' WHERE P_NAME = '$Name'";
$conn->exec($sql);
如果我运行表单并使用action="editDescription.php
,那么sql就会运行,表也会按照我想要的方式更新,但当我在事件上运行javascript时,当点击按钮时,值不会被传递,我不明白为什么,有人得到了指针吗?
当您使用提交功能时,浏览器会(正确地)对字段进行url编码。在你的js代码中,你没有进行url编码。在大多数情况下,如果您在字段或任何其他需要编码的字符中输入空格,它将失败。第二件事,在下面的行中,您必须使用小写的"d"作为"description"字段。PHP区分大小写。(我建议您始终使用小写字段名称以避免错误)
尝试:
xmlhttp.send(encodeURI("Name=" + name.value + "&description=" + Description.value));
也许还有更多的问题。正如Pierre Emmanuel所说,使用javascript控制台,特别是"网络"选项卡,可以准确地监视您通过网络发送的内容。例如,您还可以查看使用var_dump($_POST);
接收的PHP是什么。(如果第一个命令失败,则为var_dump(file_get_contents("php://input"));
。)
将您的javascript代码更改为jQuery:
function editDescription(){
var name = $('#orginalName').val(); //getting input field value
var description= $('#newDescription').val(); //getting input field value
$.ajax({//create an ajax request to Your.php
type: "POST",
url: "Your.php", //your php file name
data:{"name ":name,"description":description},
success: function(data) {
if (data) {
alert(data);
}
else {
alert('Successfully not posted.');
}
}
});
}
submitButton = document.getElementById("editDesButton");
submitButton.addEventListener("click", editDescription);
Your.php
$Name = $_POST['name'];
$Description = $_POST['description'];
if($Name !="" && $Description !=""){
$sql = "UPDATE PRODUCTS SET P_Description = '$Description' WHERE P_NAME = '$Name'";
$conn->exec($sql);
相关文章:
- PHP AJAX图片上传示例不上传
- PHP/Ajax/jquery/JON-在Ajax Post之后将echo文本中的一部分作为变量返回
- 不确定我在PHP AJAX中使用的是什么开发模式
- Php ajax return json or html
- PHP Ajax 表单提交 .什么也没发生
- 如何在发送时不打开新页面的情况下使用php/ajax发送表单
- 通过post-php-ajax发送
- 如何使用php-ajax将值从mysqldb获取到dropdownbox
- 使用JavaScript的PHP-Ajax调用将值存储在DB中
- php ajax within ajax
- PHP-AJAX复选框过滤器使用数据标记属性
- 如何在jquery中对php/ajax传递的数组进行切片
- 使用 javascript/jquery/any 动态创建 html 页面客户端.如果不可能,如何使用 php/ajax
- 为什么我的保存时间功能不起作用?PHP + AJAX JS.
- 如何在不使用 PHP/AJAX 重新加载网页的情况下自动更新内容
- JQUERY + PHP + AJAX 不起作用
- JavaScript 重置 PHP/AJAX 中的填充字段
- 数据库更新的用户确认 - php + Ajax
- PHP Ajax 自动完成多个字段
- Autosuggestion Javascript/PHP/AJAX Code