contenteditable="true" ne peut pas être soumis à php, que dois-je faire ?
三叔
三叔 2017-07-04 13:46:04
0
2
1236

Récemment, je développe un éditeur de texte enrichi, étant donné que textarea ne peut saisir que du texte, j'ai utilisé l'attribut contenteditable="true" de p pour implémenter du texte riche, qui peut insérer des images, des vidéos, etc.

Mais voici le problème, sur la page du formulaire :

<form action="test.php" method="post">
<p contenteditable="true" name="zhengwen"></p>
<input type="submit">
</form>

Si vous faites cela, le contenu de p ne peut pas du tout être soumis à la page test.php et echo $_POST[zhengwen];

Je doute qu'il ait été soumis.

Est-ce que quelqu'un sait comment le résoudre ? Vous recherchez des codes simples pour la page de soumission de formulaire et la page de réception ! ! !

三叔
三叔

répondre à tous(2)
洪涛

Il n'est en effet pas soumis car le bouton Soumettre du formulaire ne soumet que les éléments du formulaire. Et <p contenteditable="true"> n'est pas un élément de formulaire.

Si vous souhaitez soumettre les informations <p contenteditable="true">的信息提交过去,需要自己构造POST, vous devez créer vous-même une requête POST. J'utiliserai jQuery comme exemple :

.
$('form').submit(function(e) {
    e.preventDefault(); // 拦截HTML的默认表单提交

    var content = $('p[name=zhengwen]').html();
    $.post('....', {zhengwen: content}, functino(data) {
        // 成功回调
    });
});

Bien sûr, il existe de nombreuses façons d'écrire la soumission POST de jQuery, comme $.ajax() etc.

Lors de la réception côté PHP, lisez-le simplement comme d'habitude$_POST.

学霸
1、富文本编辑器可以用百度的UEditor
2、正如楼上所说,你可以用ajax来提交,但是这个有一点不好,如果有一百个输入框,难道提交一百个键值对?
3、所以你可以用js的formData对象,图片也可以发送过去,代码如下
    $("#submit").click(function() {
        var x = new FormData(document.getElementById("frm"));//构造方法里面必须是dom对象
        x.append('abc', 123);//追加你的数据
        $.ajax({
            url: '1.php',
            type: 'POST',
            data: x,
            processData: false,  // 告诉jQuery不要去处理发送的数据
            contentType: false   // 告诉jQuery不要去设置Content-Type请求头
        })
        .success(function(data) {
            //代码
        });
    });
4、也可以用serializeArray函数模拟上面的formData对象,代码如下
    var allDatas = $("form").serializeArray();
    allDatas.push({name:'data',value: JSON.stringify(你的数据对象)});//追加的格式必须是name,value形式,打印allDatas的格式就知道了!!!
    $.post(url,allDatas,function(json){//代码
    });
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal