2017-01-28 6 views
0

Ich weiß nicht, wie ich meine divs in einer anderen Seite anzeigen, nachdem sie erstellt wurden. Wenn die divs mit ihrer Funktion erstellt werden, werden sie nach dem Klicken auf eine Schaltfläche in einem div auf der Hauptseite angezeigt. Gleich danach muss eine Umleitung auf die zweite Seite erfolgen, wobei die erstellten divs übergeben werden.Wie man ein div, das mit Javascript erstellt wurde, an eine andere Seite mit PHP übergibt

Beispiel, wie die Haupt-Seite funktioniert: Jsfiddle

Ich weiß nicht, wie und die div-Tags erstellt gerade angezeigt zu senden, in einer zweiten Seite.

Ich denke, dass die Aktion mit PHP festgelegt werden, aber ich weiß nicht ...

WICHTIG

Sie müssen nicht den Js-Code zu verstehen. Sie müssen nur wissen, dass die divs, die ich auf die zweite Seite kopieren möchte, zu Beginn nicht existieren. Also muss die "copy-to-the-new-page" Aktion nach der Erstellung der divs durchgeführt werden.

Startseite:

<html lang="it"> 
     <head> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
     <meta charset="UTF-8"> 
      <link rel="stylesheet" href="style.css"/> 
     </head> 
     <body> 
<div id="faketxt" contenteditable>Write Here</div> 
<button id='btn'>OK</button> <br> 

<div id='boxes'> 

</div> 

<script type="text/javascript"> 

$('#btn').click(function() { 
    var primo = document.getElementById('faketxt'); 
    var wordLimit = 145; 
    var words = primo.textContent.replace(/(&lt;([^&gt;]+)&gt;)/ig,"").split(/\s/); 
    if (words.length) { 
    var count = 0; 
    var div = createDiv(); 
    words.forEach(function(word) { 
     if (++count > wordLimit) { 
     count = 1; 
     div = createDiv(); 
     } 
     if (div.innerHTML) { 
     div.append(' '); 
     } 
     div.append(word); 
    }); 
    } 
}); 

function createDiv() { 
    div = document.createElement('div'); 
    div.className = 'fakes'; 
    document.getElementById('boxes').append(div); 
    return div; 
} 

     </script> 

</body> 
</html> 
+0

Sie haben die 'faketxt' Eingang in Ihrem' download.php'. Warum erstellst du es nicht einfach dort? Das div ist nur "zufälliges" Markup, warum möchten Sie diese Informationen weitergeben? – Christoph

Antwort

1

Sie sollten nicht die senden Gesamte div nur die Menge an Daten, die für die nächste Seite erforderlich ist, um sie neu zu erstellenSie könnten einen Cookie verwenden und sich den Benutzer merken lassen:

haben ein verstecktes Eingabefeld, das die relevanten Informationen enthielt.

<input name="divinfo" hidden value="The info required for the creation of the div"/> 

Wenn Sie das Cookie der Javascript verwenden könnten, die Daten auf der anderen Seite neu erstellen, wenn Sie den versteckten Eingang verwenden, sollten Sie die PHP es neu erstellen müssen.

0

gut, haben Sie mindestens 3 Möglichkeiten, es zu tun, und es kommt alles darauf an, wie genügend Informationen zwischen zwei Seiten weitergeben müssen:

1) Sie können erhalten HTML dieser divs, wenn sie gerade erstellt werden, speichern sie im Sitzungsspeicher und erstellen divs aus dem gespeicherten html neu. Auf diese Weise müssen Sie nicht viel über die divs auf der 2. Seite wissen, aber es gibt eine Grenze, wie viel Sie speichern können. Darüber hinaus können Sicherheitsrisiken/Datenschutzrisiken bestehen, wenn Informationen vertraulich sind. Daher müssen Sie eventuell zusätzliche Codes hinzufügen, um sie zu mindern.

2) Sie können diese divs auf der zweiten Seite basierend auf den gleichen Informationen, die Sie auf der ersten Seite erstellt haben, neu erstellen. JS-Code könnte zwischen den beiden geteilt werden.

3) Verwenden Sie die Server-Seite, um den Inhalt von div zu generieren. Auf diese Weise können Sie sowohl den ersten als auch den zweiten Seiteninhalt generieren.

Oder gibt es etwas, das ich über das Problem vermisse?

0
  1. eine versteckte Texteingabe im Formular erstellen
  2. den neuen div Wert auf diese versteckten Eingang hinzufügen
  3. Absenden des Formulars wird der Wert auf die nächste Seite durch php
  4. Nun, da holen senden Wert in Javascript mit PHP wie

    var xyz = '';

  5. Jetzt können Sie diesen Wert verwenden, was Sie wollen

Ich weiß nicht, warum die Werte mit php-Tag ist hier nicht zeigt :(

+0

Können Sie den Code schreiben? Ich verstehe nicht ... –

+0

Er hat bereits alle Informationen, die er braucht, im Eingabefeld 'faketxt'. Er muss dieses Feld nur in der 'download.php' lesen. – Christoph

+0

var xyz = ' '; Auf der zweiten Seite müssen Sie nur den Wert von PHP für das Javascript durch diesen Codeabschnitt auswählen. Dann können Sie diese Javascript-Variable verwenden, wie Sie möchten. –

0

Ich schlage ein paar Änderungen vor. Zuerst alle, benutze eine richtige Form - so wie du es bei der ersten Überarbeitung deiner Frage getan hast.

<form action="download.php"> 
    <input id="faketxt" type="text" value="Write Here" /> 
    <button id='btn'>OK</button> 
</form> 
<div id='boxes'></div> 

nun auf der zweiten Seite, haben Sie alle Informationen, die Sie in Ihrem Formularfeld „faketxt“ müssen und können nur die divs dort erstellen. Je nachdem, welche Methode Sie verwenden (POST/GET) Sie Zugriff auf die Daten haben like following:

<?php echo $_POST["faketxt"]; ?> 

Zweitens schlage ich vor, ändern Sie Sie Code leicht, es besser lesbar etwas zu machen.

$('#btn').click(function() { 
    var primo = document.getElementById('faketxt'); 
    var wordLimit = 5; 
    var words = primo.value.replace(/(&lt;([^&gt;]+)&gt;)/ig,"").split(/\s/); 

    while (words.length > 0){ 
     let div = createDiv(); 
     div.append(words.splice(0,wordLimit).join(" ")); 
    } 
}); 

See your modified fiddle.

Verwandte Themen