2017-07-25 77 views
0
没有数据

我似乎不具有当窗体通过jQuery的AJAX提交POST

我的问题的一个片段(代码减少到简化)提交发送的任何数据:

头:

 <script> 

function dSubmit(formName, formAction, fieldsToCheck, divToHide){ 


     // No Errors process form 


var url = formAction; // the script where you handle the form input. 

$.ajax({ 
     type: "POST", 
     url: url, 
     data: $("#" + formName).serialize(), // serializes the form's elements. 
     success: function(data) 
     {alert(data)} 
    }); 

return false; // avoid to execute the actual submit of the form. 


} 
</script> 

体:

<a onclick="dSubmit('treatmentDetails','treatments/processTreatments.php','','')"><img style="width:35px;" src="i/update-icon.png"/></a> 


<form name="treatmentdetails" id="treatmentdetails" 

action="processTreatments.php" method="POST"> 

    <input type="text" name="treatmentName" value="<?php echo $treatment;?>"/> 
<input type="text" name="treatmentId" value="<?php echo $treatmentId;?>"/><br> 

    </form> 

PHP(治疗/ processTreatments.php):

$table = $dbPrefix."treatmentsOptions"; 

$treatmentId = $_POST['treatmentId']; 
$treatmentName = $_POST['treatmentName']; 
$query = mysql_query("UPDATE $table SET name='$treatmentName' WHERE id='$treatmentId'"); 

echo "variables = id: $treatmentId name: $treatmentName"; // according to jquery submit neither variable appear 
+0

PHP收到一个Ajax请求?另外,在Ajax处理过程中是否有错误? – mokamoto12

+0

你看过控制台的错误吗?您是否尝试过在通过AJAX提交之前将表单数据打印到控制台? – Difster

+0

如果我添加一个标准的提交按钮并避免使用ajax,那么数据库会在ajax提交时更新,警报读取'variables = id:name:'并且没有数据并且没有数据库更新发生。我不确定序列化部分是否正常工作,或者是否需要循环输入(它们会根据表单而不同)。感谢您的输入。 – pbytes

回答

1

您排错treatmentDetails,修复为treatmentdetails

$("#treatmentDetails").serialize()是返回空字符串。

您正确的代码是:

<a onclick="dSubmit('treatmentdetails','treatments/processTreatments.php','','')"><img style="width:35px;" src="i/update-icon.png"/></a> 
+1

什么新手的错误,我一直在做这个东西多年!有时你看不到明显的,非常感谢你! – pbytes