2013-04-03 2 views
0

Alerte N00b; Je sais assez pour être dangereux, alors pardonnez mon ignorance ... J'ai passé à travers toutes les questions connexes ici et ailleurs, mais je ne peux pas sembler comprendre la réponse qui est sûrement incluse dans les réponses :-(Afficher les données sous forme HTML lorsqu'elles sont chargées

Je poste un identifiant d'enregistrement sur une page où je veux qu'un formulaire s'affiche avec le contenu de l'enregistrement concerné.J'obtiens l'enregistrement correctement (confirmé en utilisant l'alerte) avec ce script dans la section HEAD (jquery 1.9 est appelé ainsi):

<script type="text/javascript"> 
function getSelectedCustomer() {   
    ...use the id to get the right record... 
    databaseAPI.callback = function() { 
     if (databaseAPI.error) { 
      alert("Database Error: " + databaseAPI.error); 
      } 
     else { 
      var customerRecord = databaseAPI.result; 
      alert("Test Callback: " + new String(customerRecord.full_name)); 
      $("#quoteForm").load(customerRecord); 
      } 
     return; 
     }; 
    databaseAPI.ajaxGet();   
    } 
window.onload = getSelectedCustomer; 
</script> 

... et la forme dans le corps pour être chargé:

<form method="post" id="quoteForm" action="process_quote.php"> 
<table> 
<tbody> 
<tr> 
    <td>Name</td> 
    <td><input type="text" value="<?php $customerRecord['full_name']; ?>" name="full_name"></td> 
</tr> 
...other bits of the form... 
<tr> 
    <td> 
     <input type="submit" value="Submit"> 
    </td> 
</tr> 
</tbody> 
</table> 
</form> 

Je sais que je mélange incorrectement diverses choses ensemble. Quelqu'un peut-il s'il vous plaît me faire savoir ce qu'il faut faire?

La réponse de Michael a résolu les champs INPUT dans le formulaire. N'a pas mentionné que j'avais aussi des champs SELECT:

<select size="0" name="email_sent"> 
    <option value="No">No</option> 
    <option value="Yes">Yes</option> 
</select> 

Modification de INPUT à SELECT fonctionne.

+0

Que signifie 'new String (customerRecord.full_name)' dans l'alerte? – Dawson

+0

Affiche la valeur de nom correcte incluse dans l'enregistrement. La réponse de Michael a fait l'affaire, mais maintenant je suis coincé sur la façon de charger les champs de sélection (les champs de saisie fonctionnent parfaitement). – user2033578

Répondre

0

Ce qui manque est où le code est en cours d'exécution. Le code PHP est en cours d'exécution sur le serveur, avant d'être envoyé au navigateur. Le Javascript est ensuite rendu par le navigateur. Vous ne pouvez pas passer des variables entre Javascript et PHP.

Vous voulez injecter le nom avec Javascript. Je vois que vous utilisez déjà jQuery, donc le gros travail est déjà fait pour vous. Supprimez le value="<?php $customerRecord['full_name']; ?>" du fichier PHP et remplacez $("#quoteForm").load(customerRecord); par $("#quoteForm input[name='full_name']").val(customerRecord.full_name);

Si le problème persiste, vous devrez peut-être modifier votre configuration en fonction des circonstances. Au moins, il devrait vous mettre sur la bonne voie.

+0

w00t! w00t! Merci beaucoup. Je savais que c'était quelque chose, ahem, mal à propos de ce qui se passait. Cela fonctionne parfaitement pour les champs de saisie! Ummm, j'ai essayé de changer 'entrée' pour 'sélectionner' pour les sélections ... besoin d'un indice supplémentaire. – user2033578

+0

NVM; en utilisant SELECT pour ces types de champs fonctionne. Après avoir bricolé, j'ai découvert qu'il m'arrivait d'avoir un problème de DB avec ma première valeur SELECT vide ... Murphy ... merci encore Michael; Votre réponse a résolu mon problème. – user2033578

Questions connexes