Javascript 如何修改PHP/Jquery/Ajax脚本,使其具有多个表单字段posst

Javascript 如何修改PHP/Jquery/Ajax脚本,使其具有多个表单字段posst,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我有一个php/Ajax/Jquery脚本,它在MySQL中插入一个表单字段,并在点击submit时更新页面而不刷新。我希望脚本提交四个表单字段,而不是一个 我已经更新了数据库表add\u delete\u record,增加了3个字段:余额、账号和月度,以及已经存在的内容字段 下面的代码可能太多了,因为我只需要修改几行,但我想这可以回答所有的问题 这是php和html页面: <div class="content_wrapper"> <ul id="responds">

我有一个php/Ajax/Jquery脚本,它在MySQL中插入一个表单字段,并在点击submit时更新页面而不刷新。我希望脚本提交四个表单字段,而不是一个

我已经更新了数据库表
add\u delete\u record
,增加了3个字段:余额、账号和月度,以及已经存在的内容字段

下面的代码可能太多了,因为我只需要修改几行,但我想这可以回答所有的问题

这是php和html页面:

<div class="content_wrapper">
<ul id="responds">
<?php
//include db configuration file
include_once("config.php");

//MySQL query
$Result = mysql_query("SELECT id,content FROM add_delete_record");

//get all records from add_delete_record table
while($row = mysql_fetch_array($Result))
{
echo '<li id="item_'.$row["id"].'">';
echo '<div class="del_wrapper"><a href="#" class="del_button" id="del-'.$row["id"].'">';
echo '<img src="images/icon_del.gif" border="0" />';
echo '</a></div>';
echo $row["content"].'</li>';
}

//close db connection
mysql_close($connecDB);
?>
</ul>
<div class="form_style">
<textarea name="content_txt" id="contentText" cols="45" rows="5"></textarea>
<button id="FormSubmit">Add record</button>
</div>
</div>
这不是我的脚本,所以我想我也应该给它的作者一个链接:

类似这样的内容:

var myData = "content_txt="+ $("#contentText").val()+"&other_value"+ $("#foo").val(); //post variables
//check $_POST["content_txt"] is not empty
if(isset($_POST["content_txt"]) && strlen($_POST["content_txt"])>0 && !empty($_POST["other_var"])) // !empty() checks that the variable is set and not empty
{

    //sanitize post value, PHP filter FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH
    $contentToSave = filter_var($_POST["content_txt"],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
    $otherVarToSave = filter_var($_POST["other_var"],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);

    // Insert sanitize string in record
    if(mysql_query("INSERT INTO add_delete_record(content, other) VALUES('".$contentToSave."', '".$otherVarToSave."')"))
    {
var myData = {
    content_txt: $("#contentText").val(),
    balance: $("#balance").val(),
    acctNum: $("#acctNum").val(),
    monthly: $("#monthly").val()
};
在php文件中:

$other_value = $_POST['other_value'];

UPDATE:

balance, account_number and monthly

JS:

var myData = "content_txt="+ $("#contentText").val()+"&balance"+ $("#balance").val();
myData = myData + "&account_number="+$('#acnum').val()+"&monthly="+$('#month').val();


PHP:

$content = filter_var($_POST['content_txt'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
$balance = filter_var($_POST['balance'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
$account = filter_var($_POST['account_num'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
$monthly = filter_var($_POST['monthly'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);


$qry= "INSERT INTO add_delete_record(content,balance,account,monthly) VALUES('".$content."','".$balance."','".$account."','".$monthly."')";

if(mysql_query($qry)){
这是发送多个字段的一种更简单的方法(请注意myData对象)。在PHP中,您可以如下方式检索和保存新变量:

var myData = "content_txt="+ $("#contentText").val()+"&other_value"+ $("#foo").val(); //post variables
//check $_POST["content_txt"] is not empty
if(isset($_POST["content_txt"]) && strlen($_POST["content_txt"])>0 && !empty($_POST["other_var"])) // !empty() checks that the variable is set and not empty
{

    //sanitize post value, PHP filter FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH
    $contentToSave = filter_var($_POST["content_txt"],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
    $otherVarToSave = filter_var($_POST["other_var"],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);

    // Insert sanitize string in record
    if(mysql_query("INSERT INTO add_delete_record(content, other) VALUES('".$contentToSave."', '".$otherVarToSave."')"))
    {
var myData = {
    content_txt: $("#contentText").val(),
    balance: $("#balance").val(),
    acctNum: $("#acctNum").val(),
    monthly: $("#monthly").val()
};

我不是php专家,但这应该可以帮助您:

首先更改主页上的表单区域:

<div class="form_style">
    <textarea name="content_txt" id="contentText" cols="45" rows="5"></textarea><br/>
    <input type="text" id="balance" /><br/>
    <input type="text" id="acctNum" /><br/>
    <input type="text" id="monthly" /><br/>
    <button id="FormSubmit">Add record</button>
</div>
稍后在ajax响应中:

$("#contentText").val(''); //empty text field after successful submission
$("#balance").val('');
$("#acctNum").val('');
$("#monthly").val('');
最后是PHP:

//sanitize post value, PHP filter FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH
$content = filter_var($_POST['content_txt'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
$balance = filter_var($_POST['balance'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
$account = filter_var($_POST['acctNum'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
$monthly = filter_var($_POST['monthly'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);


$qry= "INSERT INTO add_delete_record(content,balance,account,monthly) VALUES('".$content."','".$balance."','".$account."','".$monthly."')";


// Insert sanitize string in record
if(mysql_query("INSERT INTO add_delete_record(content,balance,account,monthly) VALUES('".$content."','".$balance."','".$account."','".$monthly."')"))
{
    //Record is successfully inserted, respond to ajax request
    $my_id = mysql_insert_id(); //Get ID of last inserted record from MySQL
    echo '<li id="item_'.$my_id.'">';
    echo '<div class="del_wrapper"><a href="#" class="del_button" id="del-'.$my_id.'">';
    echo '<img src="images/icon_del.gif" border="0" />';
    echo '</a></div>';
    echo $content.'</li>';
    mysql_close($connecDB);

}else{
    //output error

    //header('HTTP/1.1 500 '.mysql_error());
    header('HTTP/1.1 500 Looks like mysql error, could not insert record!');
    exit();
}
//清除后值,PHP筛选器筛选器清除字符串,筛选器标记条高
$content=filter\u var($\u POST['content\u txt'],filter\u SANITIZE\u STRING,filter\u FLAG\u STRIP\u HIGH);
$balance=filter\u var($\u POST['balance'],filter\u SANITIZE\u STRING,filter\u FLAG\u STRIP\u HIGH);
$account=filter\u var($\u POST['acctNum'],filter\u SANITIZE\u STRING,filter\u FLAG\u STRIP\u HIGH);
$monthly=filter\u var($\u POST['monthly'],filter\u SANITIZE\u STRING,filter\u FLAG\u STRIP\u HIGH);
$qry=“插入到添加\删除\记录(内容、余额、帐户、每月)值(“$content.”、“$balance.”、“$account.”、“$monthly.”);
//在记录中插入清理字符串
if(mysql_查询(“插入到添加_删除_记录(内容、余额、帐户、每月)”值(““$content.”、“$balance.”、“$account.”、“$monthly.”)中)
{
//记录成功插入,响应ajax请求
$my_id=mysql_insert_id();//从mysql获取上次插入记录的id
echo'
  • ; 回声'; echo$content.“
  • ”; mysql_close($connecDB); }否则{ //输出误差 //标题('HTTP/1.1500'.mysql_error()); 标头('HTTP/1.1500看起来像mysql错误,无法插入记录!'); 退出(); }
    你需要一个
    &
    在笔记本中,对不起,我弄错了谢谢,我不也需要修改php,像
    插入add\u delete\u记录(
    内容
    余额
    账号
    每月一次)难道我不需要用表单字段和表字段数据更新php文件吗?用一个php示例更新了我的答案。我刚刚查看了一下,您注意到:
    注意myData对象
    。我把它和我所拥有的做了比较,除了第一个变量不同之外,它没有任何区别。然而,我确实看到了您拥有的额外变量示例
    other_var:$(“#anotherField”).val()
    我是否遗漏了任何与此不同的内容?不,在JavaScript中,我所做的唯一更改是将myData格式化为对象而不是字符串(使代码更具可读性)并添加“other_var”示例属性。jQuery ajax()接受字符串和对象作为数据,并将对象转换为字符串以便自己发送,但在代码和对象声明中可读性要高得多,尤其是在必须同时发送多个变量的情况下。您可以非常轻松地将属性添加到对象中(例如,如果需要在循环中添加属性,这很好):myData.new_attribute=“还要发送另一个字符串”;谢谢你的回答!!我要履行我的诺言。我还将删除前面的注释。我注意到您将变量
    $contenttosave
    的名称更改为
    $content
    ,这很好,我只是想知道您设置的其他变量
    $balance$account$monthly
    是否也在echo语句中?如果我想在php文件的顶部添加3行代码
    if(isset($\u POST[“content\u txt”])和strlen($\u POST[“content\u txt”])>0)
    ,其中包含3个未命名的表单字段,这取决于您对这两个问题的要求。第一个问题:如果希望显示的删除网格包含新值,则选择“是”。第二个问题:如果希望3个新字段需要一个值,则选择“是”。如果你同意它们是空的,你就不需要进行验证。