• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

ajax problem...

Poehli

New member
Bei diesem code wird irgenwie nur der erste Ajax angezeigt:
PHP:
CODE....

<script language="javascript" type="text/javascript">
<!-- 
//Browser Support Code
function ajaxFunction(id){
    var ajaxRequest;  // The variable that makes Ajax possible!
    
    try{
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                // Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
// auch hier wieder das Problem mit der ID
			
            var ajaxDisplay = document.getElementById('ajaxDiv'+id);
            ajaxDisplay.innerHTML = ajaxRequest.responseText;
        }
    }
    var queryString = "?id=" + id;
    ajaxRequest.open("GET", "ajax-example.php" + queryString, true);
    ajaxRequest.send(null); 
}


function unhide(divID) {
  var item = document.getElementById(divID);
  if (item) {
    item.className=(item.className=='hidden')?'unhidden':'hidden';
  }
}

//-->
</script>

.... MEHR CODE ...
<?php

MySQL settigns....

$eingang = mysql_query("			
SELECT * 
FROM `pm`
WHERE `to` = '$cookie'
");

$rows = mysql_num_rows($eingang);

while ($inhalt = mysql_fetch_assoc($eingang))
{
	$text = $inhalt['text'];
	$id = $inhalt['id'];
	echo "
	 
	 <tr>
	 	<td>
			<div class=nachrichten> 
			 <input type=checkbox name='check".$id."' />
			 <input type=hidden value='".$id."' name='id'>
			</div>
		</td>
		
		<td>
			<div class=nachrichten> 
				".$inhalt['from']."
			</div>
		</td>
		
		<td>
			<div class='two nachrichten' id='ajaxDiv' onclick=ajaxFunction(".$id.");unhide('ajaxDiv".$id."');>
				 ".$inhalt['subject']."
			 </div>
		</td>
		
		<td>
			<div class=nachrichten> 
				".$inhalt['date']."
			</div>
			
		</td>
	</tr>
	<tr>
		<td colspan=4>
			<div>
				<div id='ajaxDiv".$id."' class='one unhidden ';>
				</div>
			</div>
		</td>
	</tr>";
};
echo ""



?> ....MEHR CODE
Ajax-Example.php
PHP:
<style type="text/css">
div.one {
	border-width:1.5px; 
	border-color:#383838; 
	border-style:solid;
	background-color:#C7C7C7;
	color:#383838;
	padding-bottom:3px;
	padding-left:4px;
	padding-right:4px;
	padding-top:3px;
}

.hidden { 	display: block; 
		}
.unhidden { display: none; }
</style>

<script language="javascript" type="text/javascript">
function unhide(divID) {
  var item = document.getElementById(divID);
  if (item) {
    item.className=(item.className=='hidden')?'unhidden':'hidden';
  }
}

function send(id){
    var ajaxRequest;  // The variable that makes Ajax possible!
    
    try{
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                // Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){

			
            var ajaxDisplay = document.getElementById('return');
            ajaxDisplay.innerHTML = ajaxRequest.responseText;
        }
    }
	var text = document.getElementById('text')
    var queryString = "?id="+id+"text="+text;
    ajaxRequest.open("GET", "newmsg.php" + queryString, true);
    ajaxRequest.send(null); 
}
</script>
<?php
...SETTINGS FOR MySQL...
	//Connect to MySQL Server
mysql_connect($dbhost, $dbuser, $dbpass);
	//Select Database
mysql_select_db($dbname) or die(mysql_error());
	// Retrieve data from Query String
$id = $_GET['id'];
	// Escape User Input to help prevent SQL Injection
$id = mysql_real_escape_string($id);
	//build query
$query = "SELECT * FROM `pm` WHERE `id` = '1'";
	//Execute query
$qry_result = mysql_query($query) or die(mysql_error());

$update = "UPDATE `pm` SET `read`='r' WHERE `id`='$id'";
$query2 = mysql_query($update);

	// Insert a new row in the table for each person returned
while($row = mysql_fetch_array($qry_result)){
	$display_string = "<table border='0'><tr><td width='15px'> </td><td colspan=3><div class='one'>$row[text]</div></td></tr>";
	$id2 = $row['id'];
	
};
$display_string .= "
<tr>
	<td colspan=3>
		 
	</td>
	<td><a href=javascript:unhide('hide');>Antworten:</a><br>
		<div id=hide class=unhidden><div id=text><textarea ></textarea></div><br>
		<input type=submit name=antwort value=antwort onclick=send(1)></div><div id=return></div>
		
	</td>
</tr></table>
";

echo $display_string;
?>
das ist newmsg.php:
PHP:
<?php
$id = 1;
$text ="hallo";

echo $id;
echo $text;
echo "test 3423423";#

?>
 
meinst du den??

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Posteingang</title>


<script language="javascript" type="text/javascript">
<!-- 
//Browser Support Code
function ajaxFunction(id){
    var ajaxRequest;  // The variable that makes Ajax possible!
    
    try{
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                // Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
// auch hier wieder das Problem mit der ID
			
            var ajaxDisplay = document.getElementById('ajaxDiv'+id);
            ajaxDisplay.innerHTML = ajaxRequest.responseText;
        }
    }
    var queryString = "?id=" + id;
    ajaxRequest.open("GET", "ajax-example.php" + queryString, true);
    ajaxRequest.send(null); 
}


function unhide(divID) {
  var item = document.getElementById(divID);
  if (item) {
    item.className=(item.className=='hidden')?'unhidden':'hidden';
  }
}

//-->
</script>



<style type="text/css">
.hidden { 	display: block; 
		}
.unhidden { display: none; }

body{
	background-color:#A15300;
	}

h1 {
	font-family: "Comic Sans MS";
	font-size:24px;
	font-weight:bold;
	text-shadow:0.1em 0.1em #380A08 ;
	color: #7A1606;
	}
	
.img {
	width:49%;
	height:27%;
	position:absolute;
	top:2.9%;
	z-index:-1;
	}

.nachrichten {
	font-family: "Trebuchet MS";
	font-size:14px;
	font-weight:600;
	color:#A15300;
	background-color:#ED7B00;
	height:18px;
	}
	

div:hover.one { 
			cursor:crosshair;
			}
div:active.one {
			cursor:crosshair;
			}
div:hover.two {
			cursor:pointer;
			}	

</style>


</head>

<body>
<div class="img "><img src="bg.png" width="100.75%" height="24%" /></div>
<table width="50%" height="60%" cellpadding="0" cellspacing="0">
    <form action='delete.php' method=POST>
    <tr height="10%">
    	<td width="5%" border=0 >
        	<h1> </h1>
        </td>
        
        <td width="25%">
        	<h1>Von</h1>
        </td>
        
        <td width="45%">
        	<h1>Betreff</h1>
        </td>
        
        <td width="25%">
        	<h1>Datum</h1>
        </td>
    </tr>

	 
	 <tr>
	 	<td>
			<div class=nachrichten> 
			 <input type=checkbox name='check1' />
			 <input type=hidden value='1' name='id'>
			</div>
		</td>
		
		<td>
			<div class=nachrichten> 
				Nils
			</div>
		</td>
		
		<td>
			<div class='two nachrichten' id='ajaxDiv' onclick=ajaxFunction(1);unhide('ajaxDiv1');>
				 Keiner
			 </div>
		</td>
		
		<td>
			<div class=nachrichten> 
				0000-00-00
			</div>
			
		</td>
	</tr>
	<tr>
		<td colspan=4>
			<div>
				<div id='ajaxDiv1' class='one unhidden ';>
				</div>
			</div>
		</td>
	</tr> 
<tr>
<td colspan="4">
<br /> 
</td>
</tr>
<tr>
	<td>
		<input type = 'Submit' name = 'delete' value = 'löschen'>
	</td>
	<td> 
		
	</td>
	<td> 
		
	</td>
	<td>
		 
	</td>
</tr>
	</form>
	</table>


</body>
</html>
 
okay ich habe kp aber kommt eine Fehlermeldung? Du könntest das JavaScript das der request zurückgibt durch ein eval laufen lassen (kann sein dass es vom browser nicht geparst wird).
 
Das ist ein alter Hut. <script>-tags werden beim einfügen über innerHTML nicht ausgeführt. Die musst du per RegExp auslesen und mit eval ausführen.
 
Tut mir leid, doch ich weiß echt nicht wie ich das machen soll...

Hab nicht besonders viel erfahrung in JavaScrip (gerade soviel, dass ich den code versteh ^^) und arbeite vorwiegend mit PHP...

Und ich hab Google nach Regexp durchsucht und immer nur gefunden, dass es einen bestimmten Teil findet
z.B. /au/ findet aus "das Haus ist blau" Haus und blau... Ist das richtig??
Wenn nicht kannst du mir dass mal beschreiben??
Und eval wertet den Inhalt aus richtig?? Aber was heißt dass genau?? Ignoriert er einfach einflüsse wie "\"?

Hoffe ihr könnt mir helfen...
 
Code:
var code = response.match(/<script[^>]*>.*?<\/script>/g);
for(var i=0; i<code.length; i++) {
	eval(code[i].replace(/^<script[^>]*>/, "").replace(/<\/script>$/, ""));
}
damit werden alle script tags ausgeführt.
 
Zurück
Oben