我有一个行为不正确的简单jQuery脚本。我究竟做错了什么?想法是用户在文本框中输入值,然后单击按钮。然后jQuery使用POST将值发送到PHP文件。然后PHP文件运行一个简单的SQL查询并给出响应。然后使用jQuery .load刷新包含原始php的div。
使用Chrome的工具,我注意到POST的响应非常完美。但是,它会被没有数据的GET覆盖。
的jQuery :
$("#GOtest").click(function() {
var customer = $("#customer").val();
if (customer == '') {
$('#alert_formula_save_failed').show();
}
else {
$.post("../assets/forms/formulations/set_session.php", {
customer: customer,
}, function(data) {
$('#alert_formula_save_success').show();
$('#dynamic').load('../assets/forms/formulations/set_session.php');
$('#alert_formula_save_failed').hide();
setTimeout(function() { $('#alert_formula_save_success').fadeOut('fast'); }, 3000);
});
}
});
PHP :
<?php
$customer = null;
$customer = 'Test' ;
$customer2 = $_POST['customer'] ;
.. db connection bits ;
try
{
$PDO = new PDO( "mysql:host=".$host.";"."dbname=".$dbname, $user, $pass);
}
catch(PDOException $e)
{
die($e->getMessage());
}
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM db_customers where customer = '$customer' ";
$stmt = $PDO->prepare($sql);
$stmt->execute(array($id));
$data = $stmt->fetch(PDO::FETCH_ASSOC);
$PDO = null;
$iscurrent = $data['iscurrent'];
echo '<br>' ;
echo 'Response 1-' ;
echo $iscurrent;
echo '<br>' ;
echo 'Response 2-' ;
echo $customer2 ;
?>
HTML :
<form id="testform" name="testform" method="POST">
<button type="button" name="GOtest" id="GOtest" class="btn btn-info">
<i class="fa fa-frown-o"></i>
SET SESSION
</button>
这个想法是'响应1'只是回应预定义的值。响应2应该只显示在文本输入框中输入的内容..但GET会覆盖所有内容。
答案 0 :(得分:3)
&#34;问题&#34;是这一行:
$('#dynamic').load('../assets/forms/formulations/set_session.php');
默认情况下使用GET。
尝试使用它代替:
$('#dynamic').html(data);