Bir fonksiyonu sayesinde arugument geçen hata

4 Cevap php

Benim kod bu hatayı yaşıyorum ..

echo "<input type='button' value='send mails' onclick=\"sendmails(".$sendQuestion.")\">";

i tür aptalca ilanıyla bu soruyu hissediyorum. Ama bu kodda ne yanlış anlamaya alamıyorum

Bu kod php yazılır. bu is i sendmails fonksiyonu herhangi bir argüman geçmek yok, ama arugment geçerken o kadar hata verir çalışıyor:

missing ) after argument list
  sendmails(Type your Question here testin to post from chrome)

Bazı ben burada yanlış ne yapıyorum bana söyleyebilir?

Best Zeeshan

4 Cevap

Etrafında bir alıntı ekleyin:

echo "<input type='button' value='send mails' onclick=\"sendmails('".$sendQuestion."')\">";

Tırnak işaretleri olmadan, javascript dize yanlış okumaktadır.

Eğer oluşturulan HTML bir göz atın, eğer böyle bir şey bakacağız:

<input type='button' value='send mails' onclick="sendmails(Type your Question here testin to post from chrome)">

Eğer JS işlevi için parametre olarak geçiyoruz dize civarı eksik bazı alıntılar vardır sendmails

Yani, ben bunun etrafında bazı tırnak eklemek söyleyebilirim; Bu gibi biraz:

echo "<input type='button' value='send mails' onclick=\"sendmails('".$sendQuestion."')\">";

EDIT : added more stuff...

$sendQuestion tırnak içeriyorsa Ama, bu size başka bir hata alırsınız ... Yani için yararlı olabilir

İkinci çözüm) bu bir (note that json_encode dize etrafında çift tırnak ekler ... bu yüzden işlev çağrısı doğrudan gömmek için zor olur ... gibi bir PHP kodu almak yüzden bir değişken kullanmak izin verir < / em>:

$sendQuestion = "Type your Question' here testin to post from chrome";
$json = json_encode($sendQuestion);

echo '<script type="text/javascript">' . "\n";
echo 'var myString = ' . $json . ';' . "\n";
echo '</script>' . "\n";
echo "<input type='button' value='send mails' onclick=\"sendmails(myString)\">";

Ve oluşturulan HTML olacak:

<script type="text/javascript">
var myString = "Type your Question' here testin to post from chrome";
</script>
<input type='button' value='send mails' onclick="sendmails(myString)">

Which is much more nice :-)
Maybe not perfect yet... But, by now, I think you get the point ;-)

Bir dipnot düşmek gibi: json_encode sadece PHP 5.2 beri var ... bu yüzden size kullandığınız PHP sürümünü kontrol etmek isteyebilirsiniz ...

Hata JavaScript motoru tarafından rapor ediliyor zaman yanlış yapıyorsun ilk şey, bazı PHP kodu gönderme olduğunu.

Hata ayıklamak için JavaScript önemlidir. Biz JS neye benzeyeceğini tahmin edebilirsiniz, ama biz başlamak JS görebilirsiniz eğer çok daha kolaydır.

Bu durumda, en olası açıklama, bunu bir dize olan bazı JS yazmak istiyorum - ama tırnak işaretleri ile JS argüman çevreleyen değildir.

Bir çiftleşmiş motoru olarak PHP düşünün. Bu deneyin:

?>
<input
  type="button"
  value="Send mails"
  onClick="sendmails('<?php echo $sendQuestion; ?>');">
<?php