2010-10-18 3 views
2

Cela m'a pris dans un pickle, même si je suis sûr que c'est probablement assez facile.Code Igniter Form - Javascript en PHP Variable. Pas pour les faibles de cœur

Je dois obtenir la valeur de hachage de l'uri de la fenêtre parente et l'insérer dans la fonction set_value(). Évidemment, je ne peux pas obtenir un hachage avec PHP, il doit donc être javascript.

parent.location.hash 

fonctionne mais je n'ai aucune idée de comment l'obtenir dans set_value().

Voici le code que je travaille avec (évidemment faux, mais vous voyez l'idée):

<label for="appt_start">Start Time</label> 
<?php echo form_error('appt_start'); ?> 
<br /> 
<input id="appt_start" type="text" name="appt_start" maxlength="12" 
value="<?php $time = "<script>document.write('parent.location.hash'); 
</script>"; set_value('appt_start', $time) ;?>" /> 

Merci!

+0

Désolé pour le retard, et merci pour les réponses. Le formulaire est tiré dans la page via ajax (jquery) donc j'avais des problèmes avec la réponse du capitaine Tokyo, je ne sais pas pourquoi entièrement. Le cheval noir a gagné celui-ci, Tpae (en bas des réponses), alors merci pour ça! – Robimp

Répondre

1

Vous pouvez utiliser jQuery pour le mettre à une entrée:

$('#appt_start').val(parent.location.hash); 
4

Vous devez utiliser un appel AJAX pour le renvoyer au serveur. Javascript fonctionne du côté client, PHP fonctionne sur le serveur. Au moment où la page est chargée et que le client se met à exécuter le Javascript, le PHP côté serveur a déjà terminé son travail et s'est arrêté. Il n'y a aucun moyen pour les deux de travailler ensemble directement.

3

set_value définit la valeur d'un champ <input>. Cela peut également être fait en javascript, sans utiliser Ajax ou PHP.

<html> 
<head> 
    <script type="text/javascript"> 
     window.onload = set_hash_value_to_appt_start; 

     function set_hash_value_to_appt_start() 
     { 
      appt_start = document.getElementById('appt_start'); 
      appt_start.value = parent.location.hash.substring(1); 
     } 
    </script> 
</head> 
<body> 
    <input id="appt_start" type="text" name="appt_start" maxlength="12"> 
</body> 
</html>