gpt4 book ai didi

php - AJAX 无法 POST 到 PHP 文件

转载 作者:行者123 更新时间:2023-11-29 13:55:07 24 4
gpt4 key购买 nike

FIXED! See bottom for solution.

我对此感到非常困难。我已经这样做好几个星期了。我正在尝试使用 AJAX 将新记录添加到 mysql 中。 PHP 文件可以 100% 工作,但我似乎无法使 AJAX 与我的表单一起使用,该表单具有发送数据的 POST 方法。顺便说一句,这是我第一次来到 StackOverflow,所以请放轻松。这是代码:

HTML 代码:

<form name='addform' method='POST' >
<td></td>
<td><input type='text' id='cname'></td>
<td>
<select id='fuel'>
<option value='Petrol'>Petrol</option>
<option value='Diesel'>Diesel</option>
<option value='Hybrid'>Hybrid</option>
<option value='LPG'>LPG</option>
</select>
</td>
<td>
<select id='trans'>
<option value='Automatic'>Automatic</option>
<option value='Manual'>Manual</option>
<option value='Semi-Auto'>Semi-Auto</option>
</select>
</td>
<td><input type='text' id='engine'></td>
<td><input type='text' id='doors'></td>
<td><input type='text' id='total'></td>
</tr>
<tr>
<td><input type='submit' value='Add Car' onclick='addRecord()'></td>
...

我有一个外部 .js 文件来处理 Javascript:

function addRecord(){
if (
document.addform.cname.value == ""
|| document.addform.fuel.value == ""
|| >document.addform.trans.value == ""
|| document.addform.engine.value == ""
|| document.addform.doors.value == ""
|| document.addform.total.value == ""
)
{
alert ("Empty >field(s) - Cannot create record");
return;
}

var mydata = null;
// Mozilla/Safari
if (window.XMLHttpRequest)
{
xmlHttpReq2 = new XMLHttpRequest ();
}
// IE
else if (window.ActiveXObject)
{
xmlHttpReq2 = new ActiveXObject ("Microsoft.XMLHTTP");
}

var cname = document.getElementById('cname').value;
var fuel = document.getElementById('fuel').value;
var trans = document.getElementById('trans').value;
var engine = document.getElementById('engine').value;
var doors = document.getElementById('doors').value;
var total = document.getElementById('total').value;

mydata = '?cname='+cname+'&fuel='+fuel+'&trans'+trans+'&engine'+engine+'&doors'+doors+'&total'+total;

alert ("To Server (Add New Record):\n\nadd.php" + mydata);

xmlHttpReq2.open('POST', "add.php" +mydata, true);
xmlHttpReq2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttpReq2.send(null);
xmlHttpReq2.onreadystatechange = addRecordCallback;
}

PHP 代码:

<?php

$link = mysql_connect ("194.81.104.27", "www", "www");
mysql_select_db ("xyz") or die(mysql_error());

$tot=$_POST[total];
$door=$_POST[doors];
$query = "INSERT INTO tbl
(ID, CARNAME, FUELTYPE, TRANSMISSION, ENGINESIZE, DOORS, TOTAL, AVAILABLE)
VALUES ('$_POST[cname]','$_POST[cname]', '$_POST[fuel]', '$_POST[trans]','$_POST[engine]', $door, $tot, $tot)";
$result = mysql_query($query);
mysql_close ($link);
?>

发生的情况是,我将信息放入表单中,单击按钮,警报告诉我它确实从表单中获取了数据。但之后什么也没有发生。我认为由于某种原因,数据没有以正确的格式发送到 PHP 文件。

谢谢!

Solution was:

我成功让它工作了!部分错误是像 @adeneo 所说的那样我没有 onclick='addRecord(); return false;' 在那里!我做的另一件事是删除表单的 id,不确定这是否有任何作用。我还将“mydata”附加到 .send,如下所示: xmlHttpReq2.send(mydata); 最后我不得不删除“?”它位于 mydata 变量收集事物中 cname 的前面。所以它是 mydata = '?cname='+cname+...,我必须删除 ?。感谢大家的帮助!

最佳答案

你的生活变得复杂了,因为你已经使用了 jquery,也将它用于 AJAX。

$.AJAX({ url: "php 路径", 类型:“帖子”, 数据:$("#formID").serialize(), });

将其作为数据发送,就可以了。

抱歉,有拼写问题,是从手机上检测到的。问候

埃泽基

关于php - AJAX 无法 POST 到 PHP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15982595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com