2016-05-06 3 views
2

Also ich versuche, eine JavaScript-Funktion zu erstellen, die eine PHP-Seite abruft und in div in einem anderen Teil der Seite anzeigt. Ich habe es geschafft, dies zu erreichen, aber die Methode clicked_id, die ich verwende, erfordert zunächst zwei Klicks, um die ID zu registrieren und anschließend die Anzahl der Mal, die sie geklickt haben, so weit wie eine Anfrage bei jedem weiteren Klick zu senden. Jede Hilfe würde geschätzt werden. Javascript onclick benötigt zwei Klicks, dann erstellt eine steigende Anzahl von Serveranfragen

<script src="/javascript/jquery.min.js"></script> 
<script src="demo.js"></script> 
<link href="demo.css" type="text/css" rel="stylesheet"> 

<div id="tabs" ><?php include "tabMenu.php"; ?></div> 
<div id="menu"><?php include "menuB.php"; ?></div> 
<div id="body" ></div> 
<div id="home"></div> 
<div id="footer"></div> 

var click_id; 
var clickId = function(a) { 
    var obj = a; 
    var clicks = '#' + obj; 
    $(clicks).click(function() { 
     $("#home").load("body/" + obj + ".php"); 
    }); 
}; 

$(document).ready(function() { 
    if ($('#home').is(':empty')) { 
     $("#home").load("body/call.php") 
    }; 

    clickId(click_id); {}; 
}); 

die Tab-Menü wird mit PHP geladen

<?php 
    $content = file('tabMenu.txt'); 
    echo '<ul>'; 
    $click= array(
     'id="call" onClick="clickId(this.id)"', 
     'id="policy" onClick="clickId(this.id)"', 
     'id="client" onClick="clickId(this.id)"', 
     'id="ifa" onClick="clickId(this.id)"' 
    ); 

    foreach (array_combine($click,$content) as $code => $lines) { 
     echo ('<li '.$code.'>' . $lines . '</li>'); 
    }; 

    echo'</ul>'; 
?> 
+1

Ihr Code unvollständig ist. 'click_id' ist niemals einem Wert zugewiesen. – Wainage

Antwort

0

Ich glaube, Sie haben verwirrt, was $(clicks).click() tut - wenn Sie es im rechten Teil des Codes setzen wird es das gleiche tun Sie mit Ihrem onClick="clickId(this.id)" tun, und das ist, warum Sie mehrere Klicks bekommen.

Der einfachste Weg, um das Problem zu lösen, ist durch diesen Code zu ersetzen:

$(clicks).click(function() { 
    $("#home").load("body/" + obj + ".php"); 
}); 

mit diesem Code:

$("#home").load("body/" + obj + ".php"); 
Verwandte Themen