【发布时间】:2012-03-09 00:34:48
【问题描述】:
我几乎遵循了我可以接触到的所有指南和教程,但我就是看不出是什么导致了这个问题:
我使用以下代码:
function updaterow(){
$.ajax({
url: 'updaterowajax.php',
type:'POST',
data: 'ID=' + ID + '&SupStatus=' + SupStatus +'&$OrderOther=' + OrderOther,
success: function(result){
console.log(result);
}
});
}
将表单的内容发布到 php 页面。但由于某种原因,它似乎没有将其作为帖子发送。尤其是它不会将其发送到正确的页面。
我最终得到的是地址栏中的这个:
orderlist.php?ID=36&SupStatus=2&OrderOther=Ska+binda+Telia+Liten+18+m%E5n.&Submit36=Spara
这是我的 AJAX 脚本所在文件的名称。它似乎正在做的(对我来说)是它向当前页面发送 GET,而不是向“updaterowajax.php”发送 POST。
我在这里做错了吗? GET 中的所有信息都是正确的,但没有传递出去。
代码有什么问题,或者我的服务器设置有什么问题吗?默认的 Apache、MySQL 和我有 jQuery 1.7.1
应该发布的表格:
while ($row = mysql_fetch_array($query)) {
echo "<tr><form id='".$row['ID']."'>
<td class='idcell'><input type='text' name='ID' readonly='readonly' value='".$row['ID']."' /></td>
<td>".$row['ArtName']."</td>
<td>".$row['ArtNumber']."</td>
<td><a href='/singlepost.php?ID=".$row['ID']."' title='Skriv ut ".$row['CustName']."'>".$row['CustName']."</a></td>
<td>".$row['CustContact']."</td>
<td>
<select name='SupStatus'>
<option value='".$row['SupStatus']."'>".$row['SupRealStatus']."</option>
<option value='01'>Mottagen</option>
<option value='02'>Lagd i korg</option>
<option value='03'>Beställd</option>
<option value='04'>Ankommen</option>
<option value='05'>Slutförd</option>
<option value='06'>Nekad</option>
</select>
<td>".$row['SupRealName']."</td>
<td>".$row['Date']."</td>
<td><textarea name='OrderOther' cols='40' rows='3'>".$row['OrderOther']."</textarea><input type='submit' value='Spara' name='Submit".$row['ID']."' onClick='updaterow()' /></td></form></tr>";}
还有更新rowajax.php
<?php
$ID = $_POST['ID'];
$OrderOther = $_POST['OrderOther'];
$SupStatus = $_POST['SupStatus'];
mysql_connect ("localhost", "root", "bilradio388") or die ('Kan inte ansluta till databasen för att: ' . mysql_error());
mysql_select_db ("bil_best");
mysql_query("UPDATE BestTable SET OrderOther = '$OrderOther' WHERE ID = '$ID'");
mysql_query("UPDATE BestTable SET SupStatus = '$SupStatus' WHERE ID = '$ID'");
echo "Dra på trissor"
?>
认为就是这样!
编辑:正如我在后面的帖子中提到的,我设法让它工作了一段时间。我使用了建议的方法:onClick='return updaterow();'它实际上正在工作。为三试。然后我更改了一些代码,它停止工作。我已经恢复到旧的工作状态,但是唉,不,它不再起作用了:PI 认为我错过了 ' 或 " 或 ; 或其他任何东西,但到目前为止我还没有找到丢失的链接.如果我找到了,我会报告。但是,上述方法似乎有效。
编辑 2:好吧,让“防止表单正常发送”开始工作(感谢您,这并不难),但萤火虫告诉我 ID 未定义。我觉得这很奇怪,因为我没有改变任何东西,从它确实可以输入到数据库中。但要明确一点:我错过了什么吗?上面的代码实际上应该定义了 ID 的值,对吧?尤其是当代码作为 GET 发送时,定义它似乎没有问题。
【问题讨论】:
-
你试过用
$.post()代替$.ajax吗? -
糟糕,updaterowajax.php 的代码没有显示出来。
-
您的代码容易受到SQL Injection的攻击
-
@PaulNikonowicz
$.post()只是$.ajax()的简写,type设置为'POST'。没有区别。