如何使用 php 使用 jquery 和 ajax 获取 textarea 的值?

Posted

技术标签:

【中文标题】如何使用 php 使用 jquery 和 ajax 获取 textarea 的值?【英文标题】:How to get value of textarea with php using jquery and ajax? 【发布时间】:2015-05-06 09:55:41 【问题描述】:

我现在正在处理我的代码,想知道你们中的一些人是否可以帮助我。我所拥有的是一个显示我的数据库中的数据的表。

<div class="cont6">
    <table class="table table-bordered table-hover table-condensed">
        <thead>
            <tr>
                <th><strong>Draft Type</strong></th>
                <th><strong>Title/Subject</strong></th>
                <th><strong>Draft Clause</strong></th>
                <th><strong>Proposed Date</strong></th>
                <th><strong>Description</strong></th>
                <th><strong>Author</strong></th>
                <th class="hidecol"><strong>Encrypt</strong></th>
            </tr>
        </thead>
        <tbody>
            <?php 
                foreach($records->result() as $row)  
                    $date_created=$row->date_created;
                    $last_modified=$row->date_modified;
                    $content=$row->content;
            ?>
            <tr>
                <td><input type="text" required name="drafttype" id="drafttype" class="inputfont2" value="<?php echo $row->draft_type; ?>"/></td>
                <td><input type="text" required name="drafttitle" id="drafttitle" class="inputfont2" value="<?php echo $row->title; ?>"/></td>
                <td><input type="text" name="draftclause" id="draftclause" class="inputfont2" value="<?php echo $row->clause; ?>"/></td>
                <td><input type="text" required name="draftdate" id="draftdate" class="datepicker" value="<?php echo $row->proposed_date; ?>"/></td>
                <td><input type="text" name="draftjustif" id="draftjustif" class="inputfont2" value="<?php echo $row->justification; ?>"/></td>
                <td><?php echo $row->author; ?></td>
                <td class="hidecol"><input type="text" name="draftencrypt" id="draftencrypt" class="inputfont2" value="<?php echo $row->encrypt; ?>"/></td>
            </tr>
            <?php  ?>
        </tbody>
    </table>
</div>

下面是文本区域的“内容”

<div class="cont3">
    Content:
        <br/>
        <textarea required class="textheader" name="draftcontent" id="draftcontent"><?php echo $content; ?></textarea>
        <br/>
</div>
&emsp;&emsp;
<input type="button" value="Save" id="btnSave" class="btn btn-mini"/>
&emsp;&emsp;Editor: <?php echo $this->session->userdata("username"); ?>
&emsp;&emsp;Date Created: <?php echo $date_created; ?>
&emsp;&emsp;Last Modified: <?php echo $last_modified; ?>
<p id="msg"></p>

我正要更新包括内容在内的每个字段的数据,但只更新了表中的字段。我尝试使用 jQuery 来提醒内容值,但每次我在其上输入不同的文本时,内容值都不会改变。

这是我的脚本

$("#btnSave").click(function() 
    alert($("#draftcontent").val());
    var form_data = 
        drafttype: $("#drafttype").val(),
        drafttitle: $("#drafttitle").val(),
        draftclause: $("#draftclause").val(),
        draftdate: $("#draftdate").val(),
        draftjustif: $("#draftjustif").val(),
        draftcontent: $("#draftcontent").val(),
        draftencrypt: $("#draftencrypt").val(),
        ajax: 1
    ;
    $.ajax(
        url: "<?php echo site_url("RO/edit_draft_save"); ?>",
        data: form_data,
        type: 'POST',
        success: function(msg)
            document.getElementById("msg").innerhtml = msg;
        
    );
);

感谢您的帮助。

【问题讨论】:

【参考方案1】:

你的draftcontent在获取值时应该是js中的.text格式。

$("#draftcontent").val()

$("#draftcontent").text()

【讨论】:

【参考方案2】:
$("#btnSave").click(function() 
    alert($("textarea#draftcontent").val());
    var form_data = 
        drafttype: $("#drafttype").val(),
        drafttitle: $("#drafttitle").val(),
        draftclause: $("#draftclause").val(),
        draftdate: $("#draftdate").val(),
        draftjustif: $("#draftjustif").val(),
        draftcontent: $("#draftcontent").val(),
        draftencrypt: $("#draftencrypt").val(),
        ajax: 1
    ;
    $.ajax(
        url: "<?php echo site_url("RO/edit_draft_save"); ?>",
        data: form_data,
        type: 'POST',
        success: function(msg)
            document.getElementById("msg").innerHTML = msg;
        
    );
);

【讨论】:

还是一样。没有提醒我输入的文字 我之前尝试过,但没有成功。我认为问题出在:&lt;textarea required class="textheader" name="draftcontent" id="draftcontent"&gt;&lt;?php echo $content; ?&gt;&lt;/textarea&gt; &lt;br/&gt; 把它改成 并确保没有其他元素具有相同的 id 并在脚本中像这样使用它:$("textarea#draftcontent").val() 把你的 html 改成这样: 【参考方案3】:

如果您使用 jQuery,那么请使用 $('#msg').html(msg) 而不是 document.getElementById("msg").innerHTML = msg;。 ajax 调用类似于:

$.ajax(
        url: "<?php echo site_url("RO/edit_draft_save"); ?>",
        data: form_data,
        type: 'POST',
        success: function(msg)
            $('#msg').html(msg);
        

【讨论】:

以上是关于如何使用 php 使用 jquery 和 ajax 获取 textarea 的值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AJAX/JQuery 调用多个 PHP 脚本?

如何使用 PHP、jQuery 和 AJAX 上传多个文件

如何使用 jQuery AJAX 和 PHP 数组返回 [重复]

如何使用 php 使用 jquery 和 ajax 获取 textarea 的值?

复选框状态更改时如何更新mysql字段?使用 jquery (ajax)、php 和 mysql

如何使用ajax和jquery从php Web服务返回简单文本[重复]