FIXED! See bottom for solution.
나는 엄청난 어려움을 겪고 있습니다. 나는 지금 몇 주 동안 그곳에 있었다. 나는 AJAX를 사용하여 mysql에 새로운 레코드를 추가하려고한다. PHP 파일은 100 % 작동하지만 AJAX를 데이터를 보내는 POST 메서드가있는 폼에 사용할 수없는 것처럼 보입니다. 이것은 내 첫 번째 시간 StackOverflow btw에 여기에 그래서 쉽게 걸릴.AJAX는 PHP 파일로 POST 할 수 없습니다.
HTML 코드 :
이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);
?>
은 어떻게됩니까
<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 파일이 여기에 코드입니다 양식에 정보를 입력하고 버튼을 클릭하면 경고 메시지가 양식에서 실제로 데이터를 가져옵니다. 그러나 그 후에는 아무 일도 일어나지 않습니다. 어떤 이유로 데이터가 올바른 형식으로 PHP 파일로 전송되지 않는다고 생각합니다.
감사합니다.
Solution was:
나는 그것을 작동시킬 수 있었다! 결함의 일부는 @adeneo가 내가 onclick='addRecord(); return false;'
을 거기에 가지지 않고있다라고 말했다라는 것이었다! 내가 한 또 다른 일은 폼의 ID를 제거하는 것이 었습니다. 나는 또한 "mydata"를 .send에 첨부했다 : xmlHttpReq2.send(mydata);
그리고 마침내 나는 "?" mydata 변수 수집 중 cname 앞에있었습니다. 그래서 그것은 mydata = '?cname='+cname+...
이었고 나는 ?
을 제거해야했습니다. 모든 도움을 주신 모든 분들께 감사드립니다!
'add.php'는 어떻게 생겼습니까? – jmeas
죄송합니다. 추가했는데 어떤 이유로 그것이 표시되지 않았습니다. 지금 일해야한다. PHP 파일은 100 % 작동합니다. 예를 들어
또한 많은 매개 변수에 이름과 값 사이에 등호가 없습니다 (mydata에서) –