Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 12:44

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



PHP JS Alternativen um Variable zu übergeben?

Discussion on PHP JS Alternativen um Variable zu übergeben? within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1

 
elite*gold: 74
Join Date: Jun 2012
Posts: 608
Received Thanks: 360
PHP JS Alternativen um Variable zu übergeben?

Serv! Ich bastel derzeit an einer landing page für den Game Client von League of Legends. Nun möchte ich ein Textfeld in meinen Client bauen wo die Variable des Textfelds an einen Link übergeben wird. Hab es im Firefox easy zum laufen bekommen:




Code:
<?php
	error_reporting(0);
	$name = $_POST["name"];
?>
HTML Code:
<form method="post">
	<input type="text" name="name" placeholder="Beschwörer">
	<a href="http://www.lolnexus.com/EUW/search?name=<?php echo $name; ?>&region=EUW" target="_blank"><input type="button" class="submit" value="Suchen"></a>
</form>
Allerdings funktioniert das ganze innerhalb des Clients nicht, da der Client die Variable nicht übergibt. Meine Vermutung ist, das der Client IE nutzt und mein Standardbrowser MF ist.

Meine Lösungsansätze waren, den Link im IE öffnen zu lassen oder das ganze mit Javascript oder ähnlichen zu versuchen. Allerdings weiß ich nicht wie! Wäre gut wenn mir da jemand mit Rat zur Seite stehen würde ..
Cℓoud is offline  
Old 06/25/2014, 21:46   #2
 
elite*gold: 0
Join Date: Feb 2010
Posts: 72
Received Thanks: 32
Ich glaube nicht, dass dieser Code auf irgendeinen Browser so läuft, wie du es wünscht.

Du legst in der form einen Link ÜBER den Submit Button. Das heißt das du das Form nie absenden kannst, weil du immer auf den Link klickst (Außer wenn du auf Enter drückst), und damit das POST Array nie gefüllt wird.
Wenn du deinen Namen eingibst, auf Enter drückst und DANN auf Suche,
würde es denn Namen des vorher eingegeben Beschwörer auf lolnexus suchen.

PHP Code:
<form method="post">
    <input type="text" name="name" placeholder="Beschwörer">
    <a href="http://www.lolnexus.com/EUW/search?name=<?php echo $name?>&region=EUW" target="_blank">
    <input type="button" class="submit" value="Suchen"></a>
</form>
Du solltest diesen Link entfernen und das ganze ca. so gestallten
Code:
<form method="post">
	<input type="text" name="name" placeholder="Beschwörer">
	<input type="button" class="submit" value="Suchen">
</form>
und im PHP Teil
PHP Code:
if(isset($_POST['name']))
header("Location: http://www.lolnexus.com/EUW/search?name=".$_POST['name']."&region=EUW"); 
flogi333 is offline  
Thanks
1 User
Old 06/25/2014, 23:50   #3

 
elite*gold: 74
Join Date: Jun 2012
Posts: 608
Received Thanks: 360
Funktioniert hat das ganze im Firefox tatsächlich! xD
Deins funktioniert im Firefox genauso wie ich es will, allerdings lässt sich die Eingabe nur mit Enter bestätigen der Submit Button hat scheinbar keine Funktion. Kann man da noch was machen?
Cℓoud is offline  
Old 06/26/2014, 01:34   #4
 
elite*gold: 0
Join Date: Feb 2010
Posts: 72
Received Thanks: 32
Ändere den button von
type="button"
auf
type="submit"
flogi333 is offline  
Old 06/26/2014, 23:26   #5

 
elite*gold: 74
Join Date: Jun 2012
Posts: 608
Received Thanks: 360
Danke, im Browser funktioniert das wirklich super! Allerdings macht der Client das nicht mit, der macht Probleme beim absenden der Daten .. will wohl mit PHP nicht so. Hab dann versucht mit fwrite() die Daten in einer .txt zu speichern und auslesen zu lassen, aber da scheitert er auch beim schreiben in die .txt, auslesen tut er die jedoch.

Wenn jemand noch eine andere Idee hat, wie ich die Variable an den Link übermitteln kann ..

Das mit fwrite() sah wie folgt aus:

Code:
<?php
	$data = implode("",file("C:\inc.summoner.txt"));

	if(isset($_POST['summoner']))
	{
		$insert = $_POST['summoner'];
		$location = fopen("C:\inc.summoner.txt","w");
		fwrite($location, $insert);
	}
?>
HTML Code:
<a href="http://www.lolnexus.com/EUW/search?name=<?php echo $data; ?>&region=EUW"><input type="button" value="test"></a>
Ist allerdings auch wieder so nen gepfusche ..

Wer den Client nicht kennt, hier mal der Aufbau ggf. ist mein Problem so einfacher zu verstehen.

Cℓoud is offline  
Old 06/27/2014, 08:26   #6
 
elite*gold: 0
Join Date: May 2014
Posts: 6
Received Thanks: 3
Der "summoner" bzw. die Eingabe wäre in $_POST[name] gespeichert.

PHP Code:
if(isset($_POST['name']) && $_POST['name'] == 'summoner'){
   ...

CookieBone is offline  
Old 06/27/2014, 13:24   #7
 
elite*gold: 0
Join Date: Feb 2010
Posts: 72
Received Thanks: 32
Ich vermute jetzt einfach mal, dass der Browser im Client nicht auf Redirects achtet.

Wenn das so wäre, gäbe es vielleicht die Möglichkeit, mit file_get_content() denn Quelltext von lolnexus auf deiner Seite auszugeben. Das kann aber Probleme mit CSS oder Javascript geben, wenn die Links nicht mit einer absoluten URL sind.

Das ist wahrscheinlich das Problem, aber ich kann dir momentan keine Lösung geben
flogi333 is offline  
Old 06/27/2014, 14:18   #8
 
devcode's Avatar
 
elite*gold: 10
Join Date: Feb 2012
Posts: 313
Received Thanks: 61
Eigentlich übergibst du deine variable garnicht an den String. Eventuell ist dies das Problem?

HTML Code:
<a href="http://www.lolnexus.com/EUW/search?name= echo $data; ?>&region=EUW"><input type="button" value="test"></a>
Da fehlt der öffnende php tag.
devcode is offline  
Old 06/27/2014, 16:34   #9

 
elite*gold: 74
Join Date: Jun 2012
Posts: 608
Received Thanks: 360
Quote:
Originally Posted by CookieBone View Post
Der "summoner" bzw. die Eingabe wäre in $_POST[name] gespeichert.

PHP Code:
if(isset($_POST['name']) && $_POST['name'] == 'summoner'){
   ...

Hm .. habt da Script von hier: Laut der Seite und meinem Script speichert der das Textfeld mit $_POST['summoner'] doch in inc.summoner.txt? Dachte es sei so:

Code:
// Lese inc.summoner.txt
$data = implode("",file("C:\inc.summoner.txt"));

        // Überprüfen ob Text bzw. Eingabe vorhanden ist.
	if(isset($_POST['summoner']))
	{
                // Text der gespeichert werden soll.
		$insert = $_POST['summoner'];

                // Ort der Datei 
		$location = fopen("C:\inc.summoner.txt","w");

                // Text schreiben bzw. eintragen
		fwrite($location, $insert);
	}
Quote:
Originally Posted by devcode View Post
Eigentlich übergibst du deine variable garnicht an den String. Eventuell ist dies das Problem?

HTML Code:
<a href="http://www.lolnexus.com/EUW/search?name= echo $data; ?>&region=EUW"><input type="button" value="test"></a>
Da fehlt der öffnende php tag.
Ich weiß nicht warum der hier fehlt, aber in meinem Script ist der vorhanden.

Könnte man das ganze ggf. irgendwie mit JS lösen? Vllt. mach der Client das eher mit ..
Cℓoud is offline  
Old 06/27/2014, 19:07   #10
 
elite*gold: 0
Join Date: May 2014
Posts: 6
Received Thanks: 3
Quote:
speichert der das Textfeld mit $_POST['summoner'] doch in inc.summoner.txt?
Ja, das stimmt. Bei der Version von flogi333 heißt das Textfeld aber nicht summoner sondern name. Das, was in das Textfeld eingegeben wurde ist also unter $_POST[name] zu finden.

Ich bin mir noch nicht ganz sicher, ob ich dein Vorhaben so ganz verstanden habe. Du möchtest von deiner selbstgebauten Seite aus bei lolnexus.com suchen?

Wenn das so ist, ist $_POST ein viel zu komplizierter Ansatz. Der Suchbegriff wird ja über GET übertragen:

HTML Code:
<form method="GET" action="http://www.lolnexus.com/EUW/search">
   <input type="text" name="name" />
   <input type="submit" value="Suchen" />
   <input type="hidden" name="region" value="EUW" />
</form>
Wäre der reine HTML-Ansatz. Wenn du die eingegebenen Werte speichern willst, kommst du jedoch um ein eigenes PHP-Script nicht herum.

Dazu kannst du das von flogi333 bequem erweitern:

PHP Code:
if(isset($_POST['name'])){
header("Location: http://www.lolnexus.com/EUW/search?name=".$_POST['name']."&region=EUW");
// fwrite

Javascript geht auch, ist aber die wohl ungünstigste Lösung:

HTML Code:
<script>
	function href(eingabe){
		var link = document.getElementById('linkID');
		link.href = 'http://www.lolnexus.com/EUW/search?name=' + eingabe + '&region=EUW';
	}
</script>

<input type="text" onchange="href(this.value);" /><a href="#" id="linkID">Suchen</a>
[ungetestet]
CookieBone is offline  
Thanks
1 User
Old 06/27/2014, 20:58   #11

 
elite*gold: 74
Join Date: Jun 2012
Posts: 608
Received Thanks: 360
Quote:
Originally Posted by CookieBone View Post
Javascript geht auch, ist aber die wohl ungünstigste Lösung:

HTML Code:
<script>
	function href(eingabe){
		var link = document.getElementById('linkID');
		link.href = 'http://www.lolnexus.com/EUW/search?name=' + eingabe + '&region=EUW';
	}
</script>

<input type="text" onchange="href(this.value);" /><a href="#" id="linkID">Suchen</a>
Das mit dem PHP hat wieder nur im Browser funktioniert .. allerdings hat deine JS Lösung super im Client funktioniert und ist endlich die Lösung!

Ich kenne mich mit JS nicht aus, könntest du mir zu dem Textfeld noch ein Dropdown Menü für den Teil "&region=EUW" machen? Es gibt zu EUW diverse andere Regionen, wo es schön wäre wenn man diese auch wählen könnte.

Desweiteren möchte ich das System für mehrere Seiten haben, hab das nun so gemacht:

Code:
<script>
	function href(summoner1){
		var link = document.getElementById('1');
		link.href = 'http://www.lolnexus.com/EUW/search?name=' + summoner1 + '&region=EUW';
	}
	function href(summoner2){
		var link = document.getElementById('2');
		link.href = 'http://www.lolskill.net/game/EUW/' + summoner2;
	}
	</script>
HTML Code:
<form method="GET">
                    <input type="text" placeholder="Beschwörer" onchange="href(this.value);" />
                    <a href="#" id="1"><button class="submit">Suchen</button></a>
				</form>
<form method="GET">
                    <input type="text" placeholder="Beschwörer" onchange="href(this.value);" />
                    <a href="#" id="2"><button class="submit">Suchen</button></a>
				</form>
.. funktioniert aber nicht richtig.
Cℓoud is offline  
Old 06/28/2014, 01:32   #12
 
elite*gold: 0
Join Date: Feb 2010
Posts: 72
Received Thanks: 32
Dein Problem ist, dass du die beiden Methoden gleich benannt hast und sie auch dieselbe Argumentenliste besitzen. Dein Browser weiß deshalb nicht, welche der Beiden er ausfrufen soll (genauer: Er nimmt die sequentiell Obere, also die mit lolnexus).

Gib der unteren Funktion einfach einen andren Name z.B. href2 o.Ä. und ändere dann den Aufruf dieser im onchange der unteren Form entsprechend ab.

Wegen der Auswahl des Spieleservers kannst du eine normale HTML <Select> dropdown Liste verwenden.

Zum Auswerten dieser Dropbox kannst du hier mal reinschauen
flogi333 is offline  
Thanks
1 User
Old 06/28/2014, 17:49   #13

 
elite*gold: 74
Join Date: Jun 2012
Posts: 608
Received Thanks: 360
Ersteres hat geklappt, das mit dem dropdown menü hab ich mir angeguckt und auch ausprobiert, kann allerdings nicht viel damit anfangen dementsprechend funktioniert es nicht.
Cℓoud is offline  
Reply


Similar Threads Similar Threads
[Hilfe] Textbox variable an andere Form übergeben
05/25/2014 - .NET Languages - 3 Replies
Hallo ich habe ein Programm in VB mit 2 Fenstern 1. Login 2. Spiel in der Login Form gibt es eine Textbox für die ip aber wie übergebe ich die ip an die andere Form ? Danke für jede Hilfe
Wrapper Problem/Variable übergeben
05/23/2014 - Web Development - 1 Replies
Moin, ich habe ein kleines Wrapper Problem. Ich würde gerne an eine .Php über eine Variable einen Wert übergeben, der mir eine Antwort liefern soll. Es soll so funktionieren, der Client sendet eine Anfrage an "Http://irgendwas.de/wrapper.php?wert=" die "wrapper.php" soll ein Array mit werten enthalten in einer simplen Form, wie: $werte= array (Text1|1,Text2|2,Text3|3);
ASPX Variable an Javaapplet übergeben
09/03/2012 - .NET Languages - 8 Replies
Hallöchen ich möchte eine ASPX Variable an ein Javaapplet übergeben... mein momentaner code sieht so aus .. aber der hakt ein bissl... ich versuch sehr warscheinlich die variable falsch zu übergeben... <%@ Page Title="Chat" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Chat.aspx.cs" Inherits="WebTest.Account.ChangePassword" ; %> <asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent"> <hgroup class="title">
Cost of accessing a casted variable vs. assigning the casted variable? (C#)
01/05/2011 - CO2 Programming - 5 Replies
I know that in unmanaged C++, casting is at compile-time, so it's better to avoid the assignment and simply access it for all instances. However, in C#, I have no idea since I'm pretty new to it.
Überprüfen ob Variable Eine Variable ist
10/16/2010 - AutoIt - 26 Replies
Hey leute ich wollte fragen ob/wie man überprüfen kann ob eine Variable eine Variable ist z.b. so $k = 1 $i = $k if $i = VARIABLE Then msgbox(0,'$i ist eine variable!!','') endif PS:Wp releast man nochma TuT (z.b. für metin2??)



All times are GMT +1. The time now is 12:45.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.