А чем уже предложенный запрос Аяксом не годится? Ведь ПШП может только дать ответ стороне клиента, в этом смысле все что может ПШП на стороне клиента может и Яваскрипт и даже больше. А то что вы писали
var x = eval('(' + str + ')'); alert(x)
Если str содержит код ПШП то отправьте str ПШП скрипту который уже и сделает свой ПШП eval а в var x запишите ответ с сервера. Делается это Аяксом легко, хоть синхронно, если нужно дождаться ответа, хоть асинхронно.