2016-03-22 41 views
-1

Bir seçenek belirlediğimde ve düğmeyi tıklattığımda, görüntüyü açmak istiyorum. Neden bu işe yaramıyor?Seçme seçenek onclick PHP onclick

<form action="#" method="post"> 
<select name="carlist"> 
    <option value="renault">Renault</option> 
    <option value="saab">Saab</option> 
    <option value="mercedes">Mercedes</option> 
    <option value="audi">Audi</option> 
</select> 

<input name="submit" type="button" value="Show the car!" onclick="location.href='images/<?php echo($_POST['carlist']); ?>.jpg'" /> 
</form> 

Yalnızca PHP kodunun çalışmadığı gibi sadece images/.jpg dosyasını açar.

+0

type = "submit" düğmesi yerine? – user3253002

cevap

1

bu deneyin:

<form action="#" method="post"> 
<select id="carlist"> 
    <option value="renault">Renault</option> 
    <option value="saab">Saab</option> 
    <option value="mercedes">Mercedes</option> 
    <option value="audi">Audi</option> 
</select> 

<input name="submit" type="button" value="Show the car!" onclick="location.href='images/' + document.getElementById('carlist').value + '.jpg'" /> 
</form> 

gerekli Hiçbir PHP hiç.

1

PHP'nin ve Javascript'in yürütme sırasına göre kafanız karışmış görünmektedir. <? Php kodunuz var mı? Sayfayı yüklemeden önce > yürütülür, dolayısıyla tanımlı $ _POST değişkeni yoktur. Bu yüzden boş bir dizeye değerlendirilir. Yalnızca formu gönderdiğinizde, $ _POST ardışık sayfa yüklemesinde form verilerinizi içerir. Ancak, formu asla iletemezsiniz, çünkü 1) tip tipinde "gönder" ve 2) düğmeleriniz yoktur - siz bile olsa - onclick-Javascript'inizin çalıştırılmasıyla önlenebilir.

Sorununuzu çözmek için muhtemelen Javascript'i veya PHP'yi kullanmalısınız, ancak ikisini birden kullanmalısınız.

Javascript Çözüm:

<select id="carlist"> 
    <option value="renault">Renault</option> 
    <option value="saab">Saab</option> 
    <option value="mercedes">Mercedes</option> 
    <option value="audi">Audi</option> 
</select> 
<input type="button" onclick="location.href='images/'+document.getElementById('carlist').value+'.jpg';"/> 

PHP Çözüm:

<?php if(isset($_POST["carlist"])) {header("Location: images/".$_POST["carlist"].".jpg");}?> 
<form action="#" method="post"> 
<select name="carlist"> 
    <option value="renault">Renault</option> 
    <option value="saab">Saab</option> 
    <option value="mercedes">Mercedes</option> 
    <option value="audi">Audi</option> 
</select> 

<input type="submit" value="Show the car!"/> 
</form> 
0

Sen göndermek için tip düğmesini değiştirmeniz gerekir. Düğme PHP kodu çalıştırmadığından. Ancak, gönderilecek düğmeyi değiştirmek istemiyorsanız, işlemi yürütmek için biraz javascript eklemeniz gerekir. Bu düzenledikten sonra kod.

<form action="#" method="post"> 
<select name="carlist"> 
<option value="renault">Renault</option> 
<option value="saab">Saab</option> 
<option value="mercedes">Mercedes</option> 
<option value="audi">Audi</option> 
</select> 

<input name="submit" type="submit" value="Show the car!" onclick="location.href='images/<?php echo($_POST['carlist']); ?>.jpg'" /> 
</form> 
+0

Haklısınız, ancak gönderilecek yazıyı değiştirirseniz, biraz javascript yazmalıyım. –

+0

Bazı javascript yazmanız gerekirse, yazabilirsiniz. –

+0

0

PHP, bir sunucu tarafı dilidir. Bu, tarayıcının içinde istemci tarafında kullanamayacağınız anlamına gelir. Bir tarayıcı tarafı (istemci tarafı) dili JavaScript'dir ve bunun gibi şeyler için kullanmanız gerekir. PHP, sayfanızda $ _POST ['carlist'] boşken (ayarlanmadı) yalnızca işleme sayfasında çalışır. Bir önceki sayfadan carlist özniteliği carlist girdisini içeren bir form göndererek göndermediniz. Jayms'in belirttiği gibi, seçtiğiniz etiket için bir kimlik belirleyebilir ve document.getElementbyId gibi JavaScript koduyla alabilirsiniz.