php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.08.2010, 13:57  
noop
Gast
 
Beiträge: n/a
Standard input Feld per Button Klick füllen:

Hi,

Ich habe als Hausaufgabe eine Aufgabe, wo ich ein Input-Feld, was deaktiviert sein soll mit einen Zufallswert aus der Datenbank füllen soll.

Dies habe ich auch fertig und klappt.

SQL-Syntax:
Code:
SELECT name
FROM zufalls_namen
ORDER
BY RAND( )
LIMIT 1
PHP-Code:
  <tr>
    <td>Zufallsname: <img src="refresh.gif" style="cursor: pointer; cursor: hand;" id="zufall" border="0" alt="Zufallsnamen Generieren" /></td>
    <td><input type="text" disabled="disabled" name="zufall" id="zufall"
      value="<?php print $record->zufall?>" />
</td>
  </tr>
Wenn ich das Formular jetzt aufrufe, habe ich in diesen Input Feld bereits einen Namen drin.

Nun kommt leider die Zusatzaufgabe (die ich aber nicht unbedingt machen muß... aber will).
"Erweitern Sie Ihr Script so, das der Zufallsname neu generiert werden kann ohne das die Seite neu geladen wird."

Da ich es gerne schlank halten möchte, würde ich das mit JS umsetzen wollen. AYAX wird sicherlich auch gehen... aber dann müßte sicherlich erst was einbinden müssen.

Fragen:
1: Kann ich das gewünschte mit JS umsetzen ?
Oder schafft das PHP sogar (soweit mir bekannt nur mit Reload[?])
2: Wäre JS die schlankste Lösung oder gibt es noch was anderes, womit ich das gewünschte besser/einfacher umsetzen kann ?

3: Falls 1 + 2 darauf hinauslaufen, das JS das am besten umsetzen kann: Nach was müßte ich googeln. Welche Funktionen kommen hier zum einsatz ?
Gff. ein Link wäre gaaaanz schön (Aber nicht unbedingt notwendig... kann auch selbst suchen)

Danke
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.08.2010, 14:09  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Zitat:
Zitat von noop Beitrag anzeigen
Fragen:
1: Kann ich das gewünschte mit JS umsetzen ?
Oder schafft das PHP sogar (soweit mir bekannt nur mit Reload[?])
Ja, kannst und musst du. Wenn du dabei allerdings auf AJAX verzichten willst, bleibt dir eigentlich nur, alle Zufallsnamen von vorneherein auszulesen (Ansatz für die Übergabe nach JavaScript siehe unten). Sind das nur 20 Stück, sicherlich eine akzeptable Lösung für deine Aufgabe, bei hunderten oder tausenden Namen kommst du um weitere Requests (AJAX) wohl nicht herum.

PHP-Code:
<script type="text/javascript">
var namen = <?php echo json_encode($array_mit_allen_namen); ?>;
</script>
fab ist offline   Mit Zitat antworten
Alt 15.08.2010, 14:18  
noop
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von fab Beitrag anzeigen
... bei hunderten oder tausenden Namen kommst du um weitere Requests (AJAX) wohl nicht herum.
Schlecht. Den Import den wir damals durchgeführt hatten beinhaltete über 62.500 an Einträgen.

In der Aufgabenstellung ist aber nicht erwähnt, welche Sprache benutzt werden soll. Und auch nicht, wieviel Speicher man verwenden darf.

Da wir zur Zeit aber nur PHP und JS behandeln, soll es wohl in JS umgesetzt werden. Nur so ein Blödsinn würde ich mir erst garnicht "anlernen" wollen.
62K an Datensätze im Speicher.... <igitt>

Soweit war ich jetzt schon mal. Dummerweise halt nur ein DB-Satz.

PHP-Code:
<?php
    $zufall 
CFG::sqlObject("
      SELECT  *
      FROM    `zufall`
      ORDER
        BY    RAND()
      LIMIT 1
    "
);
?>

  <form name="formular"> 
  <input type="hidden" name="hiddentext" value="<?php echo $zufall->name?>"> 
  <input type="text" name="text" value=""> 
  <input type="button" name="click" onClick="document.formular.text.value=document.formular.hiddentext.value;">
</form>
Beim klick wird mir der Name in das Input-Feld übergeben.

Kann ich darauf mit AJAX aufbauen oder muß was komplett neues her ?

(P.s. AJAX hatten wir wenns hochkommt... 4-6h mal behandelt. Ich kann also noch nicht mal behaupten, das Grundwissen vorhanden ist. Hoffe, das es keine allzu große Funktion wird)
  Mit Zitat antworten
Alt 15.08.2010, 14:23  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Deshalb ist es wohl eine Zusatzaufgabe. Wenn du trotz dieser 4-6h kein ausreichendes Grundwissen hast, dann lass es lieber.
fab ist offline   Mit Zitat antworten
Alt 15.08.2010, 14:28  
noop
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von fab Beitrag anzeigen
... dieser 4-6h kein ausreichendes Grundwissen hast, dann lass es lieber.
In der Hoffnung, das das gewünschte nicht allzuviel an Grundwissen vorraussetzt würde ich es trotzdem gern versuchen.

Vllt. erbarmt sich ja auch jm. und greift mir ein bissel unter die Arme und nennt mir schon mal die Befehle, die zum Einsatz kommen müssen.
Dann kann ich mich in diese Richtung schonmal einlesen und ggf. schon was zusammenbauen.


** Aufgeben, nur weil mal als Azubi noch kein Wissen hat... is glaube ich komplett der falsche Weg. Ein bissel eigeninitative meinerseits wird glaube ich überall vorrausgetzt **
  Mit Zitat antworten
Alt 15.08.2010, 14:36  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Zitat:
Zitat von noop Beitrag anzeigen
einlesen ... eigeninitative
Genau das ist der Punkt. Irgendwas scheinst du ja gelernt zu haben, warum liest sich das gerade dann wie "Erklärt mir, wie AJAX funktioniert" ?

Edit: Ein Tipp, schau dir mal jquery an, wenn du nicht alles zu Fuß machen willst/musst
fab ist offline   Mit Zitat antworten
Alt 15.08.2010, 14:40  
noop
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von fab Beitrag anzeigen
"Erklärt mir, wie AJAX funktioniert" ?
Wenn HA nächstes Jahr fertig sein soll = sicherlich wäre dann die Zeit ausreichend, AJAX im Detail zu verstehen und komplett eigenständige Programme zu schrieben.

Da aber nun Abgabe nächste Woche wäre, habe ich nur die Zeit mich in das Grundlegenste einzulesen. <= Was ich (wenn ich hier nicht gar tippe) auch schon mache.
  Mit Zitat antworten
Alt 15.08.2010, 15:57  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Und weiter geht es dann hier:
neuen Datensatz per Klick holen - Forum: phpforum.de
fab ist offline   Mit Zitat antworten
Alt 15.08.2010, 16:18  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Dass du jetzt auch noch in anderen Foren gleichzeitig fragst - und dabei dort auch noch über das Forum hier lästerst, bringt dir gleich eine weitere negative Bewertung von mir ein. Wenn hier „alles Kacke“ ist - warum bleibst du dann nicht gleich dort?


Zu deiner Aufgabe: Das muss man nicht unbedingt per AJAX lösen, es geht auch mit „primitiverem“ JavaScript.
Du kannst mit DOM-Methoden ein neues SCRIPT-Element erzeugen, und im HEAD einhängen - dann wird dessen Inhalt geladen und ausgeführt.
Als Adresse kannst du auch ein PHP-Script angeben - das muss dann einen passenden Content-Type-Header ausgeben, gefolgt von JavaScript-Code.
Dieser JavaScript-Code kann entweder reiner Daten-Code sein (bspw. Wertzuweisung an eine Variable), oder auch direkt ausführbarer Code (Zuweisung eines neuen Inhaltes an ein Formularfeld).
Den Inhalt der Variable/Wertzuweisung kann PHP dann zufällig generieren/aus der DB lesen.

Damit hast du noch keinen „Schutz“ dagegen drin, dass Namen ggf. doppelt vorkommen. Wenn du den auch noch haben willst, bietet es sich an, serverseitig mit einer Session zu arbeiten, die den Part, eindeutige Zufallswerte bereitzustellen, übernimmt.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 15.08.2010, 17:07  
noop
Gast
 
Beiträge: n/a
Standard

Also auf die dusslige Antwort (sorry für dusslig) "Ihr sollt meine HA machen" geh ich jetzt mal nicht drauf ein. Wüste nicht, das gewisse Probleme sich durch die blose Nennung einer Funktion von alleine lösen. Aber wie gesagt... no comment dazu.

Hier vvlt. mal ein gegen-Beweiss, das ich nicht (popelnd) vorm Rechner sitze und F5 drücke und darauf hoffe, das endlich mal ein vollständer Code gepostet wird, der dann auch noch funzt.

Article.php
PHP-Code:
class CFG_Article
{
   static public function 
createName()
  {
    
$newName CFG::sqlObject("
      SELECT  *
      FROM    `zufall`
      ORDER
        BY    RAND()
      LIMIT 1
    "
);

    return 
$newName->name;
  }

artikel.js
Code:
CFG_Admin_Article = {
  elBtnName: null


  ,init: function()
  {
    if ((this.elBtnName = $('btn_zufall')))
    {
      this.elBtnName.addEvent('click', this.evtClickName.bind(this));
    }
  }

  ,evtClickName: function()
  {
    new Request.JSON({
       url: '/control-article.php'
      ,data: {action: 'createName'}
      ,onComplete: this.evtCompleteName.bind(this)
    }).send();
  },
  evtCompleteName: function(r)
  {
    console.log(r);
    $('zufall').set('value', r.name);
  }
window.addEvent('domready', CFG_Admin_Article.init.bind(CFG_Admin_Article));

control-article.php
PHP-Code:
$action = @$_REQUEST['action'];
$rsp    = new stdClass();

switch (
$action)
{
  case 
'createName' :
    
$rsp->name DFP_Article::createName();
    break;
}

print 
json_encode($rsp); 
form.php
PHP-Code:
  <tr>
    <td>Zufallsname: <img src="refresh.gif" style="cursor: pointer; cursor: hand;" id="zufall" border="0" alt="Zufallsnamen Generieren" /></td>
    <td><input type="text" disabled="disabled" name="zufall" id="zufall"
      value="<?php print $record->zufall?>" />
</td>
  </tr>

Das ist mein derzeitiger Stand. Es wird sicherlich einiges unnötig sein bzw. man könnte was zusammenfassen. Aber das stammt alles aus verschiedene anderen Aufgaben, die ich jetzt irgendwie zu kombinieren versuche.

Zitat:
Zu deiner Aufgabe: Das muss man nicht unbedingt per AJAX lösen, es geht auch mit „primitiverem“ JavaScript.
Ahja... Hatte mich schon gewundert, das eine Zusatz-HA ein Bereich anscheindet, was zuvor noch garnicht gelernt worden ist.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
input feld focusieren jens76 JavaScript, Ajax und mehr 4 10.05.2010 17:46
Variable an ein Input Feld übergeben. Rubio JavaScript, Ajax und mehr 5 18.03.2010 08:25
input Feld = inhalt löschen bei Klick auf Bild lord_icon JavaScript, Ajax und mehr 3 28.01.2010 11:53
php input feld hinzufügen bajo PHP Tipps 2009 4 03.06.2009 18:45
input text oder textarea feld inhalt mit einem klick löschen noskule HTML, Usability und Barrierefreiheit 10 26.05.2009 21:47
Daten aus der Datenbank per button klick in Textbox füllen ekmek12 PHP-Fortgeschrittene 4 10.03.2009 10:00
Cursorfokus automatisch in ein Input Feld setzen DDogg HTML, Usability und Barrierefreiheit 5 17.05.2006 22:48
[Erledigt] nach x zeichen ins nächste input feld springen HTML, Usability und Barrierefreiheit 3 13.12.2005 11:21
bei input text, value füllen skho PHP Tipps 2007 4 10.11.2005 12:43
wie kann ich von einem JS eingabe feld in ein input schreibe LA-Finest HTML, Usability und Barrierefreiheit 2 07.06.2005 10:21
Select Feld nicht automatisch zurücksetzen nach Send Button PHP Tipps 2005 5 17.03.2005 16:13
Text in Input per Klick hinzufügen, bei erneutem Klick lösch 18inch HTML, Usability und Barrierefreiheit 2 05.03.2005 14:01
text in ein input feld rein schreiben HTML, Usability und Barrierefreiheit 4 30.10.2004 12:45
[Erledigt] Problem: per klick auf Button Wert erhöhen/verringern HTML, Usability und Barrierefreiheit 7 07.10.2004 08:31
Hochkommas in Input Feld PHP Tipps 2004 3 12.06.2004 15:54

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/javascript-ajax-und-mehr/70782-input-feld-per-button-klick-fuellen.html, jquery input füllen, jquery input feld füllen, jquery textfeld füllen, jquery input value füllen, jquery formular füllen, javascript input text füllen, javascript html input füllen, javascript input füllen, javascript button click text füllen, jquery inputfeld füllen, javascript input feld füllen, jquery input feld befüllen, per klick wert in input feld schreiben, how to php button send text in input feld, php input text füllen, jquery form füllen, javascript input field button, formularfelder per klick erweitern, javascript eingabefelder befüllen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:51 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum