Inhaltsverzeichnis
Antwortinhalt:
Heim Backend-Entwicklung PHP-Tutorial Ajax-Upload seltsames Phänomen?

Ajax-Upload seltsames Phänomen?

Sep 19, 2016 am 09:16 AM
ajax mysql php

<code><form method="post" name="form" id="form" enctype="multipart/form-data">
              <textarea name="post" rows="3" maxlength="100"  id="post"></textarea></td>
                 
                  <input type="file" name="myFile">
                 
                          <button type="submit" id="post_btn">發佈</button> <span id="show"></span>
              </form>
              
$("#post_btn").click(function(e){
     e.preventDefault();

        if (post.value=='')
        {
            post.focus();
            document.getElementById("show").innerHTML = "勿為空";
            return (false);
        }
        else
        {
            var timelinedata = new FormData($("#form")[0]);
            
            $.ajax({
                type:"POST",
                url:"ing",
                data: timelinedata,
                cache: false,
                contentType: false,
                processData: false,
                success:function(data){
                    $("#show").html(data);
                }
            });
        }
    
});</code>

ing

<code>$post = htmlspecialchars(preg_replace("/[\'\"]+/" , '' ,$_POST['post']),ENT_QUOTES);
$addtime = time();
          
$SQL_RE = mysql_query("SELECT * FROM `xxx`
WHERE `post` = '".$post."'
");    

if(mysql_num_rows($SQL_RE)==0)
{
        $allowTime = 60; 
        $allowT = md5();
      if (time() - $_SESSION[$allowT] > $allowTime)
      {
          $_SESSION[$allowT] = time(); 
          
          $sql = mysql_query("INSERT INTO `xxx`
          (`post`,`id`,`addtime`)
          VALUES
          ('".$post."','".$_SESSION['userid']."','".$addtime."') 
              ");

          echo '已發佈';
      }
      else
      {
          echo '過於頻繁,請稍候';
          
      
      }
}
else
{
    echo '你發佈了相同的內容';
}</code>

Da Sie Bilder hochladen können
, müssen Sie anscheinend enctype="multipart/form-data" und

in Ajax hinzufügen.
<code>contentType: false,
processData: false,</code>

Ich habe das Urteil zum Hochladen von Bildern in ing entfernt, weil ich es ausprobiert habe und es nichts damit zu tun hatte
Hier kommt das Problem
Genau wie das Urteil in meinem ing
Das Folgende ist, was ich beschrieben habe wie das, was passiert ist (Gleiches gilt für Firefox):

Ich habe einen Beitrag namens 000 veröffentlicht
Er wird in #show: Veröffentlicht erscheinen
In der nächsten Sekunde heißt es dann: Du hast den gleichen Inhalt veröffentlicht
Okay, dann drücke ich erneut auf „Veröffentlichen“ ( Der Inhalt ist das Gleiche wie 000)
Zu diesem Zeitpunkt wird „Sie haben den gleichen Inhalt veröffentlicht“ angezeigt, was korrekt ist
Aber zu diesem Zeitpunkt bewegt sich die Webseite plötzlich überhaupt nicht mehr und antwortet dann nach etwa 3 Sekunden (dort Es gibt keine Reaktion, wenn ich mich bewege. Die Handfläche erscheint auf der Maus, weil ich CSS plus Cursor:Zeiger habe, sodass ich beurteilen kann, ob die Webseite reagiert.)
Dann klicke ich erneut auf „Veröffentlichen“ (der Inhalt ist immer noch 000) und die Die Situation ist immer noch dieselbe wie in der vorherigen Zeile
Zu diesem Zeitpunkt änderte sich mein Inhalt zu 00000 und wurde erfolgreich gepostet
, aber er erschien immer noch in #show: Veröffentlicht
und änderte sich in der nächsten Sekunde zu: Sie den gleichen Inhalt veröffentlicht
und dann blieb die Webseite für weitere 3 Sekunden links und rechts hängen...

Ich verstehe also nicht, was das verursacht?
Ich denke

<code>contentType: false,
processData: false,</code>

Es hat viel damit zu tun
Dann konnte ich es nicht schaffen, nachdem ich es abgenommen hatte
Es scheint etwas mit dem Hochladen von Bildern zu tun zu haben
Denn wenn man nicht hochladen muss Bilder und reichen Sie einfach ein einfaches Formular ein, es ist in Ordnung
Dann ist diese Schreibmethode das Ergebnis meiner Suche auf Stackoverflow
Es ist so: http://stackoverflow.com/ques...
Nun ja.. . Ich bin neugierig, haben sie diese Situation nicht?
Ist das die falsche Schreibweise? Gibt es eine andere Möglichkeit, alle Werte direkt zu erfassen? Bild-Upload inklusive?

Antwortinhalt:

<code><form method="post" name="form" id="form" enctype="multipart/form-data">
              <textarea name="post" rows="3" maxlength="100"  id="post"></textarea></td>
                 
                  <input type="file" name="myFile">
                 
                          <button type="submit" id="post_btn">發佈</button> <span id="show"></span>
              </form>
              
$("#post_btn").click(function(e){
     e.preventDefault();

        if (post.value=='')
        {
            post.focus();
            document.getElementById("show").innerHTML = "勿為空";
            return (false);
        }
        else
        {
            var timelinedata = new FormData($("#form")[0]);
            
            $.ajax({
                type:"POST",
                url:"ing",
                data: timelinedata,
                cache: false,
                contentType: false,
                processData: false,
                success:function(data){
                    $("#show").html(data);
                }
            });
        }
    
});</code>

ing

<code>$post = htmlspecialchars(preg_replace("/[\'\"]+/" , '' ,$_POST['post']),ENT_QUOTES);
$addtime = time();
          
$SQL_RE = mysql_query("SELECT * FROM `xxx`
WHERE `post` = '".$post."'
");    

if(mysql_num_rows($SQL_RE)==0)
{
        $allowTime = 60; 
        $allowT = md5();
      if (time() - $_SESSION[$allowT] > $allowTime)
      {
          $_SESSION[$allowT] = time(); 
          
          $sql = mysql_query("INSERT INTO `xxx`
          (`post`,`id`,`addtime`)
          VALUES
          ('".$post."','".$_SESSION['userid']."','".$addtime."') 
              ");

          echo '已發佈';
      }
      else
      {
          echo '過於頻繁,請稍候';
          
      
      }
}
else
{
    echo '你發佈了相同的內容';
}</code>

Da Sie Bilder hochladen können
, müssen Sie anscheinend enctype="multipart/form-data" und

in Ajax hinzufügen.
<code>contentType: false,
processData: false,</code>

Ich habe das Urteil zum Hochladen von Bildern in ing entfernt, weil ich es ausprobiert habe und es nichts damit zu tun hatte
Hier kommt das Problem
Genau wie das Urteil in meinem ing
Das Folgende ist, was ich beschrieben habe wie das, was passiert ist (Gleiches gilt für Firefox):

Ich habe einen Beitrag namens 000 veröffentlicht
Er wird in #show: Veröffentlicht erscheinen
In der nächsten Sekunde heißt es dann: Du hast den gleichen Inhalt veröffentlicht
Okay, dann drücke ich erneut auf „Veröffentlichen“ ( Der Inhalt ist das Gleiche wie 000)
Zu diesem Zeitpunkt wird „Sie haben den gleichen Inhalt veröffentlicht“ angezeigt, was korrekt ist
Aber zu diesem Zeitpunkt bewegt sich die Webseite plötzlich überhaupt nicht mehr und antwortet dann nach etwa 3 Sekunden (dort Es gibt keine Reaktion, wenn ich mich bewege. Die Handfläche erscheint auf der Maus, weil ich CSS plus Cursor:Zeiger habe, sodass ich beurteilen kann, ob die Webseite reagiert.)
Dann klicke ich erneut auf „Veröffentlichen“ (der Inhalt ist immer noch 000) und die Die Situation ist immer noch dieselbe wie in der vorherigen Zeile
Zu diesem Zeitpunkt änderte sich mein Inhalt zu 00000 und wurde erfolgreich gepostet
, aber er erschien immer noch in #show: Veröffentlicht
und änderte sich in der nächsten Sekunde zu: Sie den gleichen Inhalt veröffentlicht
und dann blieb die Webseite für weitere 3 Sekunden links und rechts hängen...

Ich verstehe also nicht, was das verursacht?
Ich denke

<code>contentType: false,
processData: false,</code>

Es hat viel damit zu tun
Nachdem ich es dann abgenommen hatte, gelang es mir nicht
Es scheint etwas mit dem Hochladen von Bildern zu tun zu haben
Denn wenn man es nicht muss Laden Sie Bilder hoch und reichen Sie einfach ein einfaches Formular ein, es wird gut sein
Dann ist diese Schreibmethode das Ergebnis meiner Suche auf Stackoverflow
Es sieht so aus: http://stackoverflow.com/ques...
Nun... ich bin neugierig, haben sie diese Situation nicht?
Ist das die falsche Schreibweise? Gibt es eine andere Möglichkeit, alle Werte direkt zu erfassen? Bild-Upload inklusive?

Sie öffnen die F12-Entwicklertools Ihres Browsers und rufen die Registerkarte „Netzwerk“ auf. Klicken Sie dann erneut auf die Schaltfläche „Veröffentlichen“, um zu sehen, ob mehrere Anfragen vorliegen.

Ich verstehe nicht, kommen Sie aus Taiwan oder Hongkong und Macau? Warum verwenden Sie immer noch traditionelle chinesische Schriftzeichen zur Kommunikation? Festlandbewohner haben bereits vereinfachte chinesische Schriftzeichen verwendet

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP-Tutorial
1509
276
Gehen Sie zum Beispiel für HTTP Middleware -Protokollierung Gehen Sie zum Beispiel für HTTP Middleware -Protokollierung Aug 03, 2025 am 11:35 AM

HTTP-Protokoll Middleware in Go kann Anforderungsmethoden, Pfade, Client-IP und zeitaufwändiges Aufzeichnen aufzeichnen. 1. Verwenden Sie http.Handlerfunc, um den Prozessor zu wickeln, 2. Nehmen Sie die Startzeit und die Endzeit vor und nach dem Aufrufen als nächstes auf. Der vollständige Beispielcode wurde überprüft, um auszuführen und eignet sich zum Starten eines kleinen und mittelgroßen Projekts. Zu den Erweiterungsvorschlägen gehören das Erfassen von Statuscodes, die Unterstützung von JSON -Protokollen und die Nachverfolgung von ID -IDs.

Edge PDF -Viewer funktioniert nicht Edge PDF -Viewer funktioniert nicht Aug 07, 2025 pm 04:36 PM

TestthepdfinanotherapptodetermineeiftheisueiswithTheFileoredge.2.Enablethebuilt-InpdfviewerByTurningOff "immerOpenpdffileSexTternal" und "DownloadPdffffiles" Inedgesetings

YII -Entwickler: Beherrschen der wesentlichen technischen Fähigkeiten YII -Entwickler: Beherrschen der wesentlichen technischen Fähigkeiten Aug 04, 2025 pm 04:54 PM

Um ein Meister von YII zu werden, müssen Sie die folgenden Fähigkeiten beherrschen: 1) Verstehen Sie die MVC -Architektur von YII, 2) die Verwendung von ActInereCordorm, 3) GII -Code -Erzeugungstools effektiv verwenden, 4) Master Yii -Überprüfungsregeln, 5) Optimieren von Datenbankabfrage -Leistung, 6) Ressourcen der Datenbankabfrage und Community -Ressourcen. Durch das Lernen und die Praxis dieser Fähigkeiten können die Entwicklungsfähigkeiten im Rahmen des YII -Frameworks umfassend verbessert werden.

Verwenden von HTML `Input` -Typen für Benutzerdaten Verwenden von HTML `Input` -Typen für Benutzerdaten Aug 03, 2025 am 11:07 AM

Durch die Auswahl des richtigen HTMlinput -Typs kann die Datengenauigkeit verbessert, die Benutzererfahrung verbessert und die Benutzerfreundlichkeit verbessert werden. 1. Wählen Sie die entsprechenden Eingabetypen gemäß dem Datentyp aus, z. B. Text, E -Mail, Tel, Nummer und Datum, die automatisch überprüft und an die Tastatur anpassen können. 2. Verwenden Sie HTML5, um neue Typen wie URL, Farbe, Reichweite und Suche hinzuzufügen, die eine intuitivere Interaktionsmethode bieten können. 3.. Verwenden Sie Platzhalter und erforderliche Attribute, um die Effizienz und Genauigkeit der Formulierung zu verbessern. Es sollte jedoch beachtet werden, dass der Platzhalter das Etikett nicht ersetzen kann.

Best Practices für die Verwaltung großer MySQL -Tische Best Practices für die Verwaltung großer MySQL -Tische Aug 05, 2025 am 03:55 AM

MySQL Performance und Wartbarkeit stehen vor Herausforderungen mit großen Tabellen, und es ist notwendig, von der Strukturdesign, der Indexoptimierung, der Tabellen-Untertisch-Strategie usw. zu beginnen. 1. Ausgestaltet Primärschlüssel und -indizes: Es wird empfohlen, Selbstverlustzahlen als Primärschlüssel zu verwenden, um Seitenspaltungen zu reduzieren. Verwenden Sie Overlay -Indizes, um die Effizienz der Abfrage zu verbessern. Analysieren Sie regelmäßig langsame Abfrageprotokolle und löschen Sie ungültige Indizes. 2. Rationaler Nutzung von Partitionstabellen: Partition nach Zeitbereich und anderen Strategien zur Verbesserung der Abfrage- und Wartungseffizienz, aber der Aufteilung und dem Abschneiden von Problemen sollte die Aufmerksamkeit geschenkt werden. 3.. Überlegen Sie, wie Sie Lesen und Schreiben von Trennung und Bibliothekstrennung erwägen: Lesen und Schreiben von Trennung lindern den Druck auf die Hauptbibliothek. Die Bibliothekstrennung und die Tabellentrennung eignen sich für Szenarien mit einer großen Datenmenge. Es wird empfohlen, Middleware zu verwenden und Transaktions- und Cross-Store-Abfrageprobleme zu bewerten. Frühe Planung und kontinuierliche Optimierung sind der Schlüssel.

Mastering Flow Control innerhalb von Foreach mit Pause, Fortsetzung und Goto Mastering Flow Control innerhalb von Foreach mit Pause, Fortsetzung und Goto Aug 06, 2025 pm 02:14 PM

Breakexitstheloopmed sofort nach der Findingingatarget, idealforstoppingTheFirstmatch.2.ContinueskipTheCrourrentiteration, nützlichFilteringitemsliketemporaryFiles

Gehen Sie mit gutem Beispielionieren einer Subprozesse aus Gehen Sie mit gutem Beispielionieren einer Subprozesse aus Aug 06, 2025 am 09:05 AM

Führen Sie den untergeordneten Prozess mit dem Betriebssystem/EXEC -Paket aus, erstellen Sie den Befehl über exec.Command, führen Sie ihn jedoch nicht sofort aus. 2. Führen Sie den Befehl mit .output () aus und fangen Sie Stdout an. Wenn der Exit-Code ungleich Null ist, return exec.exiterror; 3. Verwenden Sie .Start (), um den Prozess ohne Blockierung zu starten, mit .stdoutpipe () in Echtzeit aus der Ausgabe von Ausgang zu streamen; V. 5. Exec.EexitEerror muss verarbeitet werden, um den Ausgangscode und den Stderr des fehlgeschlagenen Befehls zu erhalten, um Zombie -Prozesse zu vermeiden.

Was ist der Unterschied zwischen Kürzung, Löschen und Tropfen in MySQL? Was ist der Unterschied zwischen Kürzung, Löschen und Tropfen in MySQL? Aug 05, 2025 am 09:39 AM

DeleterEmovesspezifikorallrows, KeepStablestructure, erlaubtRollbackAndtriggers und doesnotresetauto-Inkremente; 2.Truncatequicklyremovesallrows, ResetsAuto-Increment, kann nicht berberollt, die Mostcasen, die Notfiriggers und Keepstructure;

See all articles