2016-05-11 9 views
0

Ich habe 2 Seiten genannt testing.php und submission.php. Was ich erreichen möchte, ist das Senden von Daten von testing.php zur Anzeige dieser Daten in submission.php. Wenn ein Benutzer beispielsweise auf test1 klickt, wird er an submission.php weitergeleitet und ich möchte test1 auf dieser Seite anzeigen. Hier ist mein Code:Übergeben von Daten von einer Seite an eine andere mit Ajax

testing.php:

<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
</head> 
<body> 
    <div class="col-xs-3"> 
     <ul id="choose"> 
      <li class="nav"><a href="submission.php">test1</a></li> 
      <li class="nav"><a href="submission.php">test2</a></li> 
      <li class="nav"><a href="submission.php">test3</a></li> 
      <li class="nav"><a href="submission.php">test4</a></li> 
      <li class="nav"><a href="submission.php">test5</a></li> 
      <li class="nav"><a href="submission.php">test6</a></li> 
     </ul> 
    </div> 

    <script> 
     $(document).ready(function() {  
      $("#choose").on('click', '.nav', function() { 
       $.post("submission.php", { data: $(this).text() }, alert($(this).text()));    
      }); 
     }); 
    </script> 
</body> 

submission.php:

<?php 
    $subcat = $_POST['data']; 
    echo $subcat; 
?> 

Im Moment submission.php unten Fehler zeigt;

Notice: Undefined index: data in C: \ xampp \ htdocs \ series \ Dynamik \ admin \ CleanURL \ submission.php on line 2

Vielen Dank im Voraus für die in sie suchen, bitte vorschlagen Wie könnte ich dieses Problem umgehen?

+1

Wenn Sie den Benutzer tatsächlich zu 'transmission.php' umleiten möchten, um die Daten anzuzeigen, dann brauchen Sie AJAX nicht, verwenden Sie einfach ein Standard' form' Element –

Antwort

-1

mit Formular

<form action="submission.php" method="post"> 
Name: <input type="text" name="name"><br> 
<input type="submit"> 
</form> 

Mit AJAX

var data = (this).text(); 
    $.ajax({ 
     method: "POST", 
     url: "submission.php", 
     data: { li_selected: data} 
    }) 
     .done(function(msg) { 
     alert("Response: " + msg); 
     }); 

Ich denke, dass Sie Ajax diejenigen verwenden möchten.

0

Dies ist, was passiert:

  1. Sie den Link
  2. das Ereignis ausgelöst
  3. Das JavaScript läuft
  4. Die Ajax-Anfrage
  5. prepped ist der Link folgt
  6. klicken Die Ajax-Anfrage wird abgebrochen, weil die Seite, auf der sie sich befindet, nicht mehr existiert

$_POST ist leer, weil Sie eine reguläre GET-Anfrage machen, indem Sie einem Link folgen.

Zuerst be unobtrusive.

Ersetzen Sie den Link mit einem Formular (alternativ entwerfen Sie das System zu verwenden GET Anforderungen, es hängt von what the system is doing ab). Fügen Sie eine versteckte Eingabe ein, um den Wert data festzulegen.

Dann es Ajaxy zu machen:

  1. Bind der Event-Handler auf die Formen
  2. Capture the Ereignisobjekt
  3. Prevent das Standardverhalten

Sie auch benötigen Veranstaltung einreichen übergeben Sie eine Funktion als drittes Argument zu $.post.

Such:

$("#choose").on('submit','form', function(event){ 
    event.preventDefault(); 
    $.post(
     "submission.php", 
     {data: this.form.data.value}, 
     function (response) { alert(response); }    
    ); 
}); 
0

einfachste dies zu erreichen, wird mit GET und erfordert keine Javascript.

<ul id="choose"> 
    <li class="nav"><a href="submission.php?data=test1">test1</a></li> 
    <li class="nav"><a href="submission.php?data=test2">test2</a></li> 
    <li class="nav"><a href="submission.php?data=test3">test3</a></li> 
    <li class="nav"><a href="submission.php?data=test4">test4</a></li> 
    <li class="nav"><a href="submission.php?data=test5">test5</a></li> 
    <li class="nav"><a href="submission.php?data=test6">test6</a></li> 
</ul> 

Ihre submission.php.

<?php 
$subcat = $_GET['data']; 
echo $subcat; 
?> 

Allerdings, wenn Sie wirklich wollen/müssen POST verwenden, dann ist es ein bisschen mehr Code und benötigt Javascript. zuerst Ihre ul in Form wickeln und Funkeingänge zu jedem Element hinzufügen und sie verstecken:

<form action="submission.php" method="post"> 
    <ul id="choose"> 
     <li class="nav"><input type="radio" name="data" value="test1" style="display: none" /><a href="#">test1</a></li> 
     <li class="nav"><input type="radio" name="data" value="test2" style="display: none" /><a href="#">test2</a></li> 
     <li class="nav"><input type="radio" name="data" value="test3" style="display: none" /><a href="#">test3</a></li> 
     <li class="nav"><input type="radio" name="data" value="test4" style="display: none" /><a href="#">test4</a></li> 
     <li class="nav"><input type="radio" name="data" value="test5" style="display: none" /><a href="#">test5</a></li> 
     <li class="nav"><input type="radio" name="data" value="test6" style="display: none" /><a href="#">test6</a></li> 
    </ul> 
</form> 

Wenn Sie auf einen Link klicken, Javascript verwenden, um die richtige Radioeingang zu machen geprüft und das Formular abzuschicken.

$("#choose").on('click', '.nav', function() { 
    $(this).find('input').prop('checked', true); 
    $('form').submit();    
}); 

Dann können Sie Ihren submission.php Code verwenden.

Verwandte Themen